单链表的逆序输出
来源:互联网 发布:写轻小说的软件 编辑:程序博客网 时间:2024/06/05 07:53
/*单链表的顺序输出,即从头结点开始,一次后移,输出;单链表的逆序输出,可先将其结点从头结点开始一次入栈,再从栈顶开始,依次出栈即可*/
//先创建链表结点的结构体
链表结点.h
struct
ListNode
{
int
value;
ListNode *next;
};
#include <iostream>
#include <stack>
#include "链表结点.h"
using
namespace
std;
//创建链表
ListNode *creatList()
{
int
value=0;
ListNode* pHead=
new
ListNode();
ListNode* pNode=pHead;
while
((value+1) != 0)
{
cin>>value;
ListNode *pNew=
new
ListNode();
pNew->value=value;
pNew->next=NULL;
pNode->next=pNew;
pNode=pNew;
}
pHead=pHead->next;
return
pHead;
}
//逆序输出
void
printListreverse(ListNode *pHead)
{
stack<ListNode*> nodes;
ListNode* pNode=pHead;
while
(pNode != NULL)
{
nodes.push(pNode);
pNode=pNode->next;
}
while
(!nodes.empty())
{
pNode=nodes.top();
cout <<pNode->value <<
" "
;
nodes.pop();
}
}
int
main()
{
ListNode*phead=creatList();
ListNode*pnode=phead;
cout <<
"顺序输出链表:"
<<endl;
while
(pnode!=NULL)
{
cout <<pnode->value <<
" "
;
pnode=pnode->next;
}
//此时pnode指向最后的节点
cout <<
"\n逆序输出链表:"
<<endl;
printListreverse(phead);
//必须要保证phead是链表的第一个节点,因此要声明两个指针,同时指向链表的第一个节点
cout <<endl;
return
0;
}
- 单链表的逆序输出
- 单链表的逆序输出
- 单链表的逆序输出
- 单链表的逆序输出
- 单链表逆序或者逆序输出
- 单链表的动态建立和逆序输出
- 字符串的逆序输出
- 整数的逆序输出
- 数组的逆序输出
- 字符的逆序输出
- 逆序输出的数列
- 逆序的BSF输出
- 数组的逆序输出
- 字符串的逆序输出
- 数组的逆序输出
- 输出三位数的逆序
- 如何逆序输出单链表?
- 单链表逆序输出
- 判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法2
- extjs 4tabpanel学习总结
- Clipped View的裁剪和对齐方式
- vs 打包部署字体
- Android开发中网络请求的压缩-GZip
- 单链表的逆序输出
- MySQL数据类型1
- html中base标签的用处
- vim显示行号、语法高亮、自动缩进的设置
- php截取字符串可以避免乱码 utf8
- PHP模板引擎Smarty详解
- 处理概括关系之十二 :Replace Delegation with Inheritance(以继承取代委托)
- 4、VLAN路由
- notepad++中快捷键插件Zen.Coding的安装及相关小问题解决