typedef struct node
{
int m_nValue;
node* m_pNext;
}ListNode;
//功能:通过栈结构将链表逆向打印
//输入:pHead 头节点地址
//输出:无
void PrintListReversingly_Iteratively(ListNode* pHead)
{
std:stack<ListNode*> nodes; //通过stack容器定义栈结构 nodes
ListNode* pNode = pHead;
while (pNode != nullptr)
{//1.顺序遍历链表节点,将节点压如栈中
nodes.push(pNode); //将pNode压入栈中
pNode = pNode->m_pNext;
}
while (!nodes.empty())
{//2.依次从栈中取出元素,并打印节点的值
pNode = nodes.top(); //从栈中弹出一个元素
cout << pNode->m_nValue << ",";
nodes.pop(); //移除栈顶元素
}
cout << endl;
}
//功能:通过递归的思想将链表节点逆序输出
//输入:pHead 头节点地址
//返回:无
void PrintListReversingly_Recursively(ListNode* pHead)
{
if (pHead != nullptr)
{
if (pHead->m_pNext != nullptr) //回归条件(到达尾部节点)
{
PrintListReversingly_Recursively(pHead->m_pNext); //递推公式
}
cout << pHead->m_nValue << ","; //打印节点信息
}
}
typedef struct node
{
int m_nValue;
node* m_pNext;
}ListNode;
//功能:通过栈结构将链表逆向打印
//输入:pHead 头节点地址
//输出:无
void PrintListReversingly_Iteratively(ListNode* pHead)
{
std:stack<ListNode*> nodes; //通过stack容器定义栈结构 nodes
ListNode* pNode = pHead;
while (pNode != nullptr)
{//1.顺序遍历链表节点,将节点压如栈中
nodes.push(pNode); //将pNode压入栈中
pNode = pNode->m_pNext;
}
while (!nodes.empty())
{//2.依次从栈中取出元素,并打印节点的值
pNode = nodes.top(); //从栈中弹出一个元素
cout << pNode->m_nValue << ",";
nodes.pop(); //移除栈顶元素
}
cout << endl;
}
//功能:通过递归的思想将链表节点逆序输出
//输入:pHead 头节点地址
//返回:无
void PrintListReversingly_Recursively(ListNode* pHead)
{
if (pHead != nullptr)
{
if (pHead->m_pNext != nullptr) //回归条件(到达尾部节点)
{
PrintListReversingly_Recursively(pHead->m_pNext); //递推公式
}
cout << pHead->m_nValue << ","; //打印节点信息
}
}
ListNode* pHead = NULL;
ListNode* pNode1 = NULL;
ListNode* pNode2 = NULL;
ListNode* pNode3 = NULL;
pHead = (ListNode*)malloc(sizeof(ListNode));
pNode1 = (ListNode*)malloc(sizeof(ListNode));
pNode2 = (ListNode*)malloc(sizeof(ListNode));
pNode3 = (ListNode*)malloc(sizeof(ListNode));
pHead->m_nValue = 0;
pHead->m_pNext = pNode1;
pNode1->m_nValue = 1;
pNode1->m_pNext = pNode2;
pNode2->m_nValue = 2;
pNode2->m_pNext = pNode3;
pNode3->m_nValue = 3;
pNode3->m_pNext = NULL;
PrintListReversingly_Recursively(pHead);
————————————————
版权声明:本文为CSDN博主「王建峰」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/feit2417/article/details/96823864