輸入一個連結串列的頭結點,從尾到頭反過來列印每個節點的值。
阿新 • • 發佈:2018-12-30
連結串列節點的定義:
- typedefstruct LinkNode
- {
- int _value;
- struct LinkNode* _next;
- }LinkNode,*pLinkNode;
連結串列定義:
- typedefstruct LinkList
- {
- LinkNode* _phead;
- }LinkList,*pLinkList;
-
//使用遞迴將單鏈表從尾到頭列印
- void Display_LinkList_EndToStart2(pLinkNode pNode)
- {
- if(pNode == NULL)
- {cout<<"This LinkList is Empty!!!"<<endl;}
- if(pNode != NULL)
- {
- if(pNode->_next != NULL)
- Display_LinkList_EndToStart2(pNode->_next);
-
cout<<pNode->_value<<"->"
- }
- }
- //藉助棧使得單鏈表從尾到頭輸出
- void Display_LinkList_EndStartTo1(pLinkList plink)
- {
- assert(plink);
- if(plink->_phead == NULL)
- {cout<<"This LinkList is Empty!!!"<<endl;}
- stack<int> stack1;
-
pLinkNode cur = plink->_phead ;
- while(cur != NULL)
- {
- stack1.push(cur->_value);
- cur = cur->_next ;
- }
- while(stack1.empty() != true)
- {
- cout<<stack1.top()<<"->";
- stack1.pop();
- }
- cout<<"NULL"<<endl;
- }