打印链表时,我们不希望修改链表的结构,并且希望从尾到头打印其中的内容,这时很容易想到栈的结构。因为指针从头到尾依次遍历,把内容读到栈里,先进的内容会后出,符合从尾到头打印的顺序,而且没有改变栈的结构。实现如下,先随机生成一个有10个结点的链表,正向打印,最后调用PrintListReversingly_Iteratively()函数,反向打印。
#include <iostream>
#include <stdlib.h>
#include <stack>
#include <time.h>
#include <assert.h>
using namespace std;
typedef struct linkList
{
int m_nValue;
struct linkList *next;
}listNode,*linklistp;
linklistp insert_tail(linklistp head,linklistp newnode)
{
assert(newnode);
if(head == NULL)
{
head = newnode;
}
else
{
linklistp temp = head;
while(temp->next != NULL)
{
temp = temp->next;
}
newnode->next = NULL;
temp->next = newnode;
}
return head;
}
void output(linklistp head)
{
linklistp temp = head;
while(temp)
{
cout<<temp->m_nValue<<" ";
temp = temp->next;
}
co

本文介绍了如何使用栈从尾到头打印链表,避免修改链表结构。通过遍历链表并将节点值压入栈中,然后逐个弹出节点值,实现了逆序打印链表。
最低0.47元/天 解锁文章
1325

被折叠的 条评论
为什么被折叠?



