搜索
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 链表倒置的算法看不懂,求解释
标题:
链表倒置的算法看不懂,求解释
只看楼主
泡vs泡happy
等 级:
论坛游民
帖 子:30
专家分:21
注 册:2013-11-1
结帖率:
57.14%
楼主
已结贴
√
问题点数:20 回复次数:8
链表倒置的算法看不懂,求解释
void reverse(Lisklist L){
Lnode *p;
p=H->next;
H->next=NULL;
while(p){
q=p;
p=p->next;
q->next=H->next;
H->next=q;
}
}
2013-11-01 17:17
MissingLCY
等 级:
论坛游民
帖 子:5
专家分:42
注 册:2013-9-24
第
2
楼
得分:0
应该是错的吧
2013-11-01 18:23
qunxingw
等 级:
贵宾
威 望:
24
帖 子:1676
专家分:7295
注 册:2011-6-30
第
3
楼
得分:5
先理解一下实际插入头结点与第一个数据结点的方法。结合本题的方法:把原链表由p来指挥,原头结点置空以创建倒序的链表。先把要处理的结点保存到q,再由p指挥到原链表下个结点,此时按头结点插入法处理,如此等等 ,注意此函数的参数!
www.qunxingw.wang
2013-11-01 19:09
LiuFuMinH
等 级:
论坛游民
帖 子:12
专家分:45
注 册:2013-10-27
第
4
楼
得分:5
void CreateList(LinkList &L) //将顺表逆置
{
LinkList p,q,s;
p=L->next;s=p;
q=p->next;
while(!(p->next==NULL))
{
p->next=p->next->next;
q->next=s;
s=q;
q=p->next;
}
L->next=s;
}
你试试这个
2013-11-02 13:26
LiuFuMinH
等 级:
论坛游民
帖 子:12
专家分:45
注 册:2013-10-27
第
5
楼
得分:0
感觉你那个是错的
2013-11-02 13:31
泡vs泡happy
等 级:
论坛游民
帖 子:30
专家分:21
注 册:2013-11-1
第
6
楼
得分:0
回复 2楼 MissingLCY
书上的,不会错
2013-11-02 23:08
爱编聪聪
等 级:
论坛游民
帖 子:26
专家分:20
注 册:2013-9-16
第
7
楼
得分:10
void reverse(Lisklist L){
Lnode *p;
p=H->next; //这是带头结点的单链表,这句就是把链表的首结点给p
H->next=NULL;//然后就是把链表从头结点后断开,于是原来的链表就分成了两部分,一部分只剩一个头结点
while(p){ //再把另一部分上的结点一个一个摘下来,利用“
头插法
”,依次插到头结点后面,就是实现了逆序
q=p;
p=p->next; 主要是利用了头插法能实现逆序的功能
q->next=H->next;
H->next=q;
2013-11-04 10:47
泡vs泡happy
等 级:
论坛游民
帖 子:30
专家分:21
注 册:2013-11-1
第
8
楼
得分:0
回复 7楼 爱编聪聪
好像通啦,头结点是一直从后往前走的吧,这点没想清楚,谢谢!
2013-11-04 11:30
泡vs泡happy
等 级:
论坛游民
帖 子:30
专家分:21
注 册:2013-11-1
第
9
楼
得分:0
回复 3楼 qunxingw
谢谢
2013-11-04 11:33
9
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-422899-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.419791 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved