91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中怎么實現一個單向鏈表

發布時間:2021-07-19 17:51:28 來源:億速云 閱讀:98 作者:Leah 欄目:編程語言

C++中怎么實現一個單向鏈表,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

C++單向鏈表實現代碼:

  1. #include < iostream>   

  2. using namespace std;   

  3. template < class T>   

  4. struct node   

  5. {   

  6. //public:   

  7. // 結構體成員默認就是public的  

  8. T data;   

  9. node< T> *next;   

  10. };   

  11. //typedef struct node NODE;   

  12. //typedef NODE *NODEPTR;   

  13. //typedef后面要跟具體的類類型,而不是一個類模版。eg: typedef node< T> 
    NODE (C++中,實例化結構體時struct可省略)  

  14. template < class T>   

  15. class list   

  16. {   

  17. public:  

  18. //以下三個函數要供外部調用,所以要聲明為public,class默認為private。  

  19. /*  

  20. void creat(T &p);   

  21. void print(T p);   

  22. void destroy(T &p);   

  23. */  

  24. //這三個函數的參數有問題,按照下文的實現,我認為應改為如下:  

  25. void creat(T *p);  

  26. void print(T *p);  

  27. void destroy(T *p);  

  28. };   

  29. template< class A>   

  30. //void creat(A &p)   

  31. void list< A>::creat(A *p)  

  32. {   

  33. //class node *q;   

  34. //形參里的A就是這個程序的node類型  

  35. char ch = 0; //下數第4行cin>>ch 中的ch未定義,在此補充  

  36. A *q = NULL;  

  37. q=p; //必須新增這一句,q用于以后的動態分配  

  38. cout< < "input"< < endl;   

  39. cin>>ch;  

  40. // if(!p) //這個if放在while里會影響效率,故移到while外邊,
    改過程序之后,實際上用不著了  

  41. // {   

  42. //p=new struct node;   

  43. //語法錯誤,形參里的A就是這個程序的node類型  

  44. // p = new A();  

  45. if(ch!='#')  

  46. p->data=ch;   

  47. // }   

  48. cin>>ch;  

  49. while(ch!='#')   

  50. {   

  51. //q->next=new class node;   

  52. //語法錯誤,形參里的A就是這個程序的node類型  

  53. q->next = new A();  

  54. //q->next=ch;   

  55. //這句應該是給data賦值  

  56. q->next->data = ch;  

  57. qq = q->next; //必須新增這一句,q用于以后的動態分配  

  58. cin>>ch;   

  59. }   

  60. q->next=NULL;   

  61. }   

  62. template < class T>   

  63. void list< T>::print(T *p)   

  64. {   

  65. if(p)   

  66. {   

  67. cout< < p->data< < " ";   

  68. print(p->next);   

  69. }   

  70. }  

  71. template < class T>   

  72. void list< T>::destroy(T *p)   

  73. {   

  74. if(p)   

  75. {   

  76. destroy(p->next);   

  77. delete p->next;   

  78. }   

  79. }   

  80. int main()   

  81. {   

  82. // NODEPTR p;   

  83. node< int> p;  

  84. // list L; 模版要有參數  

  85. list<  node< int> > L;  

  86. L.creat(&p);   

  87. cout < <  endl < <  endl < <  "show:" < < endl;  

  88. L.print(&p);   

  89. L.destroy(&p);  

  90. return 0;   

關于C++中怎么實現一個單向鏈表問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

望城县| 张北县| 繁昌县| 桑日县| 三原县| 宁安市| 聂拉木县| 衡山县| 绥芬河市| 永昌县| 田林县| 抚顺县| 谢通门县| 大连市| 桂阳县| 灵丘县| 淮阳县| 陕西省| 新巴尔虎左旗| 惠来县| 前郭尔| 泗阳县| 资阳市| 纳雍县| 黄平县| 宜宾县| 壤塘县| 宜丰县| 霍山县| 土默特右旗| 莒南县| 新巴尔虎右旗| 屯昌县| 衡南县| 杭锦后旗| 牡丹江市| 方正县| 玛沁县| 惠东县| 迁安市| 玉林市|