| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 795 人关注过本帖
标题:单链表逆置
只看楼主 加入收藏
小兔子慢慢
Rank: 2
等 级:论坛游民
帖 子: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
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:1 
自己写个驱动程序测试一下就知道对不对了.
2010-03-04 21:55
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分: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
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:1 
画个图很好理解的
2010-03-05 15:29
小兔子慢慢
Rank: 2
等 级:论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
收藏
得分:0 
我笨
2010-03-05 21:04
小兔子慢慢
Rank: 2
等 级:论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
收藏
得分:0 
回复 3楼 missiyou
那p=h和p=h->next有什么不同啊


我觉得 p=h是头结点
p=h->next是头结点的后一个
2010-03-05 21:07
小兔子慢慢
Rank: 2
等 级:论坛游民
帖 子:45
专家分:30
注 册:2009-4-13
收藏
得分:0 
回复 3楼 missiyou
其他我知道啦
2010-03-05 21:08
快速回复:单链表逆置
数据加载中...
 
   



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

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