| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5337 人关注过本帖
标题:单链表如何倒置?
只看楼主 加入收藏
wddy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-6-9
收藏
 问题点数:0 回复次数:10 
单链表如何倒置?
单链表原地置逆,就是把单链表原地倒置,算法该怎么写那?
搜索更多相关主题的帖子: 单链 倒置 原地 算法 
2005-06-12 17:48
seeker
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2005-6-5
收藏
得分:0 

/*对单链表实现就地逆置*/ #include "stdlib.h" #include "stdio.h" struct LNode { int data; struct LNode *next; }; typedef struct LNode node; typedef node *LinkList;

void Inverse(LinkList L) { LinkList ptr,head,tail; int num,i; tail=(LinkList)malloc(sizeof(node)); tail->next=NULL; ptr=tail; printf("\n请输入5个数据:"); for(i=0;i<=4;i++) { scanf("%d",&num); ptr->data=num; head=(LinkList)malloc(sizeof(node)); head->next=ptr; ptr=head; } ptr=ptr->next; printf("逆置后为:"); while(ptr!=NULL) { printf("%d ",ptr->data); ptr=ptr->next; } printf("\n"); } void main() { LinkList L; Inverse(L); }


我相信总有一片天空属于我!http://myseeker. E-Mail:lwqcny@
2005-06-12 17:55
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
收藏
得分:0 
将表头和链表分离,然后将剩下的那些结点按“头插法”依次插入到分离出来的表头上重新组合链表就可以了。

要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2005-06-12 20:24
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
得分:0 
我早就了发了出来。去这里看看 http://bbs.bc-cn.net/bbs/dispbbs.asp?BoardID=179&ID=17142

[此贴子已经被作者于2005-6-13 7:10:04编辑过]


生是编程人!!!!死是编程鬼!!!!颠峰人生!!!焚尽编程!!! 爱已严重死机!情必须重新启动!情人已和服务器断开连接!网恋也需要重新拨号!-----激情依旧
2005-06-13 07:09
seeker
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2005-6-5
收藏
得分:0 
看了,不过比较复杂。

我相信总有一片天空属于我!http://myseeker. E-Mail:lwqcny@
2005-06-13 12:32
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
得分:0 
    你的根本就不是逆置。只是头插法罢了。你连逆置的概念都没弄清楚。如果像你那样做。根本就没意义。而且你的只能是5个。。。。。

生是编程人!!!!死是编程鬼!!!!颠峰人生!!!焚尽编程!!! 爱已严重死机!情必须重新启动!情人已和服务器断开连接!网恋也需要重新拨号!-----激情依旧
2005-06-16 08:09
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
Node  *p,*q,*r;
  p=head-&gt;link;
  q=p-&gt;link;
  while(q!=NULL)
  {
   r=q-&gt;link;
   q-&gt;link=p;
   p=q;
   q=r;
  }
  head-&gt;link-&gt;link=NULL;
  head-&gt;link=p;

这部分就可以实现逆置

c++/C + 汇编 = 天下无敌
2005-06-16 08:38
bobog
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-4-23
收藏
得分:0 
能不能用JAVA来写啊?  

不懂。。。
2010-04-23 21:32
longxuan1011
Rank: 2
等 级:论坛游民
威 望:1
帖 子:4
专家分:20
注 册:2010-6-19
收藏
得分:0 
很简单
void exch(LinkList &L)
{
  LinkList p,s;
  p=L->next;
  L->next=NULL;
  while(p)
   {
     s=p;
     p=p->next;
     s->next=L->next;
     L->next=s;
   }
}
2010-06-25 22:58
淘气公主
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-8-1
收藏
得分:0 
如链表:L——  ——A——B——C——D——E
倒置第一步有:L——  ——B——A——C——D——E
第二步有:L——  ——C——B——A——D——E
……
最后又:L——  ——E——D——C——B——A
Status DaoZhi(LinkList &L){
    LinkList p,pre;
    p=L->next;
    pre=p->next;
    while(pre){
      p->next=pre->next;
      pre->next=L->next;
      L->next=pre;
      pre=p->next;
    }
}
2010-08-01 20:19
快速回复:单链表如何倒置?
数据加载中...
 
   



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

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