zoukankan      html  css  js  c++  java
  • <算法编程> 从尾到头打印链表

      1 #include<iostream>
      2 using namespace std;
      3 
      4 struct Node
      5 {
      6     int n;
      7     Node* pNext;
      8 };
      9 
     10 Node* AddNode(Node** pHead,Node* pNode)
     11 {
     12     if((*pHead) == NULL)
     13     {
     14         (*pHead) = pNode;
     15     }
     16     else 
     17     {
     18         Node* pEnd = (*pHead);
     19         while(pEnd->pNext != NULL)
     20         {
     21             pEnd = pEnd->pNext;
     22         }
     23         pEnd->pNext = pNode;
     24     }
     25 
     26     return *pHead;
     27 }
     28 
     29 void PrintList(Node* pHead)
     30 {
     31     while(pHead)
     32     {
     33         cout << pHead->n << " ";
     34         pHead = pHead->pNext;
     35     }
     36     cout << endl;
     37 }
     38 
     39 //递归方式
     40 void pfun(Node* pHead)
     41 {
     42     if(pHead == NULL) return ;
     43     
     44     Node* pNode = pHead;
     45     if(pNode != NULL)
     46     {
     47         if(pNode->pNext != NULL)
     48             pfun(pNode->pNext);
     49         cout << pNode->n << endl;
     50     }
     51 
     52     return ;
     53 }
     54 
     55 //数组方式:开辟一个和链表一样长度的数组 遍历一遍链表存进数组
     56 //然后数组倒着输出就可以了
     57 
     58 //栈:利用栈先进后出的方式来打印
     59 //遍历一个链表就压一个进栈
     60 //最后全部弹出打印
     61 
     62 int main()
     63 {
     64     Node* pHead = NULL;
     65 
     66     Node* pNode1 = new Node;
     67     pNode1->n = 1;
     68     pNode1->pNext = NULL;
     69     AddNode(&pHead,pNode1);
     70     Node* pNode2 = new Node;
     71     pNode2->n = 2;
     72     pNode2->pNext = NULL;
     73     AddNode(&pHead,pNode2);
     74     Node* pNode3 = new Node;
     75     pNode3->n = 3;
     76     pNode3->pNext = NULL;
     77     AddNode(&pHead,pNode3);
     78     Node* pNode4 = new Node;
     79     pNode4->n = 4;
     80     pNode4->pNext = NULL;
     81     AddNode(&pHead,pNode4);
     82     Node* pNode5 = new Node;
     83     pNode5->n = 5;
     84     pNode5->pNext = NULL;
     85     AddNode(&pHead,pNode5);
     86     Node* pNode6 = new Node;
     87     pNode6->n = 6;
     88     pNode6->pNext = NULL;
     89     AddNode(&pHead,pNode6);
     90     Node* pNode7 = new Node;
     91     pNode7->n = 7;
     92     pNode7->pNext = NULL;
     93     AddNode(&pHead,pNode7);
     94     Node* pNode8 = new Node;
     95     pNode8->n = 8;
     96     pNode8->pNext = NULL;
     97     AddNode(&pHead,pNode8);
     98     
     99     pfun(pHead);
    100 
    101     system("pause");
    102     return 0;
    103 }
  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/Aaaaaalei0612/p/11218800.html
Copyright © 2011-2022 走看看