- 论坛徽章:
- 0
|
- #include <stdio.h>
- struct node
- {
- struct node *next;
- int data;
- };
- int main()
- {
- int a[6];
- int i;
- struct node *node;
- struct node *root;
- struct node *tmp;
- void *b;
- void *c;
- void *d;
- int flag;
- flag=0;
- b=NULL;
- c=NULL;
- tmp = NULL;
- root=NULL;
- node=NULL;
- for ( i=0;i<6;i++ )
- {
- a[i]=i;
- }
- /*创建六个节点开始*/
- for ( i=0;i<6;i++ )
- {
- node=malloc(sizeof(struct node));
- if ( 0==i )
- {
- root=node;
- node->next=NULL;
- tmp=root;
- node->data=a[i];
- continue;
- }
- node->next=NULL;
- node->data=a[i];
- ((struct node *)tmp)->next = node;
- node = NULL;
- tmp=tmp->next;
- }
- /*创建六个节点结束*/
- tmp=root;
- i=0;
- /*打印节点*/
- while ( NULL!=tmp )
- {
- fprintf(stderr,"%d ",tmp->data);
- tmp=tmp->next;
- i++;
- }
- i=i-3;
- fprintf(stderr,"\n");
- /*倒置节点开始*/
- b=root->next->next;
- root->next->next=root;
- c=root->next;
- root->next->next->next=NULL;
- root=b;
- while ( flag!=i )
- {
- flag++;
- root=b;
- b=root->next;
- root->next=c;
- c=root;
- }
- root=b;
- root->next=c;
- tmp=root;
- /*倒置节点结束*/
- while ( NULL!=tmp)
- {
- fprintf(stderr,"%d ",tmp->data);
- tmp=tmp->next;
- }
- fprintf(stderr,"\n");
- tmp=root;
- while ( NULL!=tmp)
- {
- d=tmp->next;
- free(tmp);
- tmp=d;
- }
- tmp = NULL;
- root = NULL;
- }
复制代码 大家帮忙看看我写的这个对不对! |
|