搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 单链表逆置
标题:
单链表逆置
只看楼主
小兔子慢慢
等 级:
论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
结帖率:
100%
楼主
已结贴
√
问题点数:15 回复次数:6
单链表逆置
typedef struct lnode
{datatype data;
struct lnode *next;
}lnode,*linklist;
void reverse(linklist h)
{lnode *p,*q;
p=h->next;
h->next=NULL;
while(p)
{q=p;
p=p->next;
q->next=h->next;
h->next=q;
}
}
这个算法俺不懂 大家详细解释下吧
对不对啊
搜索更多相关主题的帖子:
单链
2010-03-04 21:32
广陵绝唱
等 级:
贵宾
威 望:
29
帖 子:3607
专家分:1709
注 册:2008-2-15
第
2
楼
得分:1
自己写个驱动程序测试一下就知道对不对了.
2010-03-04 21:55
missiyou
等 级:
贵宾
威 望:
16
帖 子:531
专家分:218
注 册:2007-10-9
第
3
楼
得分:13
void reverse(linklist h)
{
lnode *p,*q;
p=h->next; //保存头节点 同时起遍历链表作用
h->next=NULL; //头节点为空 //作为重新组合的逆置最终链表,
while(p)
{
q=p; //q暂存一下 p
p=p->next; //这样p 就可以指向一下结点
q->next=h->next; //原理这一个头插法,就是插入一个结点。就把它放在第一个。
h->next=q;
}
//这样,p 一个一个遍历,在由q 暂存。然后,用头插法,把q 暂存指针放入第一个,那么p遍历最后一结点,就被插入第一个,
//实现了逆置效果。
}
2010-03-05 14:17
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
4
楼
得分:1
画个图很好理解的
2010-03-05 15:29
小兔子慢慢
等 级:
论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
第
5
楼
得分:0
我笨
2010-03-05 21:04
小兔子慢慢
等 级:
论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
第
6
楼
得分:0
回复 3楼 missiyou
那p=h和p=h->next有什么不同啊
我觉得 p=h是头结点
p=h->next是头结点的后一个
2010-03-05 21:07
小兔子慢慢
等 级:
论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
第
7
楼
得分:0
回复 3楼 missiyou
其他我知道啦
2010-03-05 21:08
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-298581-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017951 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved