您的位置:首页 > 其它

C 语言经典题目系列解决方案(3)-链表创建与倒置

2010-09-15 09:40 441 查看
题目:链表的创建与倒置。

解决方案:
#define  student struct stu
#define  length sizeof(struct stu) 
student{
			int stuNum;
			student *next;
		};

main()

{
          int n,m;
	  student *head,*new,*pCurrent;
          student *temp,*pFallowed;
	  printf("enter the number of students: ");
	  scanf("%d",&n);
	  m=n;
	 

	  printf("创建链表.........................../n");
	  while (n>0){
	  new=(student *)malloc(length);
	  printf("enter the stuNum of students_%d: ",m-n+1);
	  if (n==m)	{head=new;pCurrent=new;}
	  else{
		 pCurrent->next=new;
		 pCurrent=new;
	  }
	  scanf("%d",&(new->stuNum));
	  n--;
	  }
	  new->next=0;
	  pCurrent=new=0;
	  
	 

	  printf("正向输出链表.........................../n");
          pCurrent=head;
	  while(pCurrent){
	     printf("%d/n",pCurrent->stuNum);
		 pCurrent=pCurrent->next;
	  }

	printf("倒置链表.........................../n");
        pCurrent=head;
   
	temp=0;
	while(pCurrent){
		pFallowed=pCurrent->next;
        pCurrent->next=temp;
        temp=pCurrent;
        pCurrent=pFallowed;
	}
	
	head=temp;

	printf("输出倒置后链表.........................../n");
        pCurrent=head;
	  while(pCurrent){
	     printf("%d/n",pCurrent->stuNum);
		 pCurrent=pCurrent->next;
	  }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: