| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5930 人关注过本帖
标题:写一个算法,借助于栈将一个单链表置逆
只看楼主 加入收藏
爱上夏天的雨
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-5-17
收藏
 问题点数:0 回复次数:14 
写一个算法,借助于栈将一个单链表置逆
写一个算法,借助于栈将一个单链表置逆
搜索更多相关主题的帖子: 单链 算法 
2007-05-22 21:15
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
单链表倒置只须将结点重新运用头插法即可.
可以参考一下我的链表帖.

倚天照海花无数,流水高山心自知。
2007-05-22 21:42
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用nuciewth在2007-5-22 21:42:52的发言:
单链表倒置只须将结点重新运用头插法即可.
可以参考一下我的链表帖.

什么是“头插法”?


Fight  to win  or  die...
2007-05-23 11:37
滨海
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-6-3
收藏
得分:0 
我写了一个,你看看吧。

//课后习题3-6 用单链表实现逆转;

#include <iostream>
using namespace std;
class List; //List类的前视声明;
class ListNode //ListNode类定义;
{
friend class List; //List为友元类;
private:
int data;
ListNode *link;
public:
ListNode(int d){data=d;link=0;} //构造函数(空表);
};
class List //List类定义;、
{
private:
ListNode *first,*last;
public:
List(){first=last=0;} //构造函数;
void Insert(int); //插入函数:为链表赋值;
void Inverse();
void print(int); //输出函数;
};
void List::Insert(int i)
{
ListNode *p=new ListNode(i);
if(first==0) //原为空表;
{
first=last=p;
last->link=NULL;
}
else
{
p->link=first;
first=p;
}
}
void List::Inverse()
{
if(first==0)return; //原为空表时无逆转;
ListNode *p=first->link,*pr=NULL;
while(p!=NULL)
{
first->link=pr; //逆转第一个节点;
pr=first;
first=p;
p=p->link;
}
first->link=pr;
}
void List::print(int n) //输出链表;
{
ListNode *q=first;
cout<<q->data<<' ';
for(int i=0;i<n-1;i++)
{
q=q->link;
cout<<q->data<<' ';
}
cout<<endl;
}
void main()
{
List a; //定义对象a;
int n;
cout<<"请输入插入值的个数(n):"<<' ';
cin>>n;
for(int i=n;i>=1;i--)
{
a.Insert(i);
}
cout<<"原表为:"<<endl;
a.print(n);
a.Inverse();
cout<<"逆转后表为:"<<endl;
a.print(n);
}


让暴风雨来的更猛烈些吧!!
2007-06-03 22:48
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
回复:(aipb2007)以下是引用nuciewth在2007-5-22 21...
每次插入操作,都是将结点插在头部.始终使插入的结点作为第一个结点.

倚天照海花无数,流水高山心自知。
2007-06-04 12:19
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
以下是引用aipb2007在2007-5-23 11:37:38的发言:

什么是“头插法”?

斑竹你快说你是开玩笑,接受不了


Viva,espana!
2007-06-04 21:22
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
楼主要的是利用栈来做的例子,这样:头节点置空,把其他节点进栈,然后再依次出栈建立链表,因为栈是后进先出的,所以建立起来的链表就是逆序的

Viva,espana!
2007-06-04 21:30
菜鸟也疯狂
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2007-3-20
收藏
得分:0 
回复:(zkkpkk)以下是引用aipb2007在2007-5-23 11:3...

标志好第一个结点,然后把后面的结点依次往前插,每次都插在这个标志结点的前面,当尾指针第向这个标志结点的时候倒置完成。有点类似尾插。
如果版主有什么不对就指出来嘛,你这口气???


2007-06-09 11:32
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
回复:(菜鸟也疯狂)回复:(zkkpkk)以下是引用aipb...
我的意思是说他比应该不知道吧

Viva,espana!
2007-06-10 17:20
爱上夏天的雨
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-5-17
收藏
得分:0 
2007-06-20 08:20
快速回复:写一个算法,借助于栈将一个单链表置逆
数据加载中...
 
   



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

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