| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 639 人关注过本帖
标题:[原创]链表逆置
只看楼主 加入收藏
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
 问题点数:0 回复次数:1 
[原创]链表逆置
题目:将一个有头结点的链表逆置
我写的时候用-1做为结束标记。我用了Head做为辅助头结点。有兴趣的去看看。
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct node{
  int data;
  struct node *next;
}Node,*LinkList;
void CreateList(LinkList *head)
{   LinkList p,q;
    int x;
 if((*head=(Node *)malloc(sizeof(Node)))==NULL) exit(1);
    (*head)->next=NULL;
 q=(*head);
 printf("please input data:\n");
 scanf("%d",&x);
 do{
        if((p=(Node *)malloc(sizeof(Node)))==NULL) exit(1);
  p->data=x;
  p->next=NULL;
  q->next=p;
  q=p;
  p=NULL;
  printf("please input number:\n");
  fflush(stdin);
  scanf("%d",&x);
 }while(x!=-1);
}
void Reverse(LinkList head)
{LinkList p,q,s=NULL,Head;
 int count=0,i;
 p=head->next;
 while(p)
   {   count++;
       p=p->next;
   }
   p=head->next;
   if((Head=(Node *)malloc(sizeof(Node)))==NULL) exit(1);
   Head->next=p;
   head->next=NULL;
 for(i=0;i<count;i++)
   {  p=Head->next;
      Head->next=p->next;
   p->next=NULL;
   if(s==NULL)
   s=p;
   else
   { p->next=s;
      s=p;
   }
   }
   head->next=s;
   free(Head);
}
void Print(LinkList head)
{ LinkList p;
  p=head->next;
  while(p)
  {  printf("%d\t",p->data);
     p=p->next;
   }
  
}
main()
{ LinkList head;
  CreateList(&head);
  Print(head);
  Reverse(head);
  printf("\n");
  Print(head);
}

图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: 链表 
2005-05-01 01:00
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
得分:0 
热情帮我修改后的

大家将函数void Reverse(LinkList head)换成下面的。以下是热情写的。他写的比我好多了。我推荐大家看他的 void Reverse(LinkList head) { LinkList p,q,r; p=head->next; q=p->next; while(q!=NULL) { r=q->next; q->next=p; p=q; q=r; } head->next->next=NULL; head->next=p;

}


生是编程人!!!!死是编程鬼!!!!颠峰人生!!!焚尽编程!!! 爱已严重死机!情必须重新启动!情人已和服务器断开连接!网恋也需要重新拨号!-----激情依旧
2005-05-01 19:09
快速回复:[原创]链表逆置
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015380 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved