亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++雙向循環列表用法實例

2020-05-23 14:18:24
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了C++雙向循環列表,實例分析了C++雙向循環列表的創建、輸出、添加、刪除、移動的相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C++雙向循環列表用法。分享給大家供大家參考。具體如下:

 

 
  1. /*  
  2. 雙向循環鏈表  
  3. */ 
  4. #include <iostream> 
  5. using namespace std; 
  6. //結構體構造鏈表的指針域和數據域 
  7. struct ChainNode 
  8. int data; //節點數據  
  9. ChainNode *left; //節點的前驅指針 
  10. ChainNode *right; //節點的后繼指針  
  11. }; 
  12. ////////////創建n個雙向循環鏈表 并返回鏈表頭指針/////////  
  13. ChainNode* CreateNode(int n) 
  14. ChainNode *head = NULL; //鏈表頭節點 
  15. ChainNode *pCur=NULL,*pNew=NULL; //當前節點,新建節點 
  16. //初始化頭結點的前驅和后繼節點都為NULL  
  17. if (n<1) //沒有節點 返回頭節點  
  18. return head;  
  19. }  
  20. //創建頭節點并將器左右指針指向空  
  21. head = new ChainNode;  
  22. head->left = NULL; 
  23. head->right = NULL;  
  24. head->data = 0; 
  25. pCur = head; 
  26. //為防止指針互指帶來的混亂,用pCur節點保存了頭節點 也表示當前指針移動到了頭指針  
  27. //創建n個節點 并連接成鏈表  
  28. for (int i=0; i<n; i++) 
  29. pNew = new ChainNode; //創建一個新節點 
  30. cout<<"請輸入數據:"
  31. cin>>pNew->data; 
  32. pCur->right = pNew; //頭指針的右指針指向新建節點  
  33. pNew->left = pCur; //新建節點的左指針執行頭節點  
  34. pNew->right = NULL; //用于最后和頭指針進行交換  
  35. pCur = pNew; //指針往下移動  
  36. }  
  37. //最后將頭指針的左指針指向最后一個節點, 
  38. //最后一個節點的有指針指向頭指針,構成循環  
  39. head->left = pCur;  
  40. pCur->right = head; 
  41. return head;  
  42. //////////////輸出鏈表頭節點///////////////////////  
  43. void OutList(ChainNode *head) //參數為頭指針 從頭指針開始  
  44. cout<<"鏈表元素輸出如下:"<<endl; 
  45. ChainNode *pCur = head->right; 
  46. //重第一個節點開始輸出  
  47. //沒有指向空節點,則鏈表沒結束 輸出鏈表元素  
  48. while (pCur->right != head)  
  49. cout<<pCur->data<<" "
  50. pCur = pCur->right; 
  51. //當前節點指向下一個節點 可以遍歷鏈表  
  52. }  
  53. cout<<pCur->data<<endl; 
  54. //輸入最后一個元素,它的右指針執行head  
  55. ///////在雙向循環鏈表后添加n個節點////// 
  56. ChainNode* AddNode(ChainNode* head, int n) 
  57. ChainNode *pNew,*pCur; 
  58. //新添加節點和當前節點 
  59. pCur = head;  
  60. //移動到最節點 
  61. while (pCur->right != head)  
  62. pCur = pCur->right; 
  63. //當前節點往下移動 一直移到最后一個節點  
  64. //新添加n個節點并插入鏈表 
  65. for (int i=0; i<n; i++) 
  66. pNew = new ChainNode; 
  67. cout<<"輸入要添加的節點元素:"
  68. cin>>pNew->data; 
  69. pCur->right = pNew; //頭指針的右指針指向新建節點  
  70. pNew->left = pCur; //新建節點的左指針執行頭節點  
  71. pNew->right = NULL; //用于最后和頭指針進行交換  
  72. pCur = pNew; //指針往下移動  
  73. }  
  74. //最后將頭指針的左指針指向最后一個節點, 
  75. //最后一個節點的有指針指向頭指針,構成循環  
  76. head->left = pCur;  
  77. pCur->right = head; 
  78. return head;  
  79. }  
  80. /////在雙向循環鏈表中刪除一個節點///////  
  81. ChainNode* DeleteNode(ChainNode* head, unsigned num) 
  82. //刪除第num個節點 
  83. ChainNode *pNew,*pCur,*temp; 
  84. //新添加節點和當前節點 ,臨時交換節點  
  85. pCur = head;  
  86. int ncount = 0;  
  87. //移動到第num-1個節點 
  88. while (1) 
  89. ncount++; 
  90. pCur = pCur->right; //當前節點往下移動  
  91. if (num == ncount) 
  92. break//此時pCur還是指向了第num個節點  
  93. }  
  94. //當前節點的前一個節點的右指針 指向 當前節點的下一個節點 
  95. //當前節點的下一個節點的左指針 指向 當前節點的上一個節點 構成連接 
  96. //最后 刪除當前節點  
  97. (pCur->left)->right = pCur->right; 
  98. (pCur->right)->left = pCur->left; 
  99. delete pCur; 
  100. return head;  
  101. int main() 
  102. int num; 
  103. //創建num個節點并顯示  
  104. cout<<"輸入要創建的鏈表節點個數:"
  105. cin>>num; 
  106. ChainNode *head = CreateNode(num); 
  107. OutList(head);  
  108. //往鏈表后添加n個節點 
  109. int addnum; 
  110. cout<<"輸入要添加的節點個數:"
  111. cin>>addnum;  
  112. AddNode(head, addnum); 
  113. OutList(head);  
  114. //刪除鏈表的第del個元素 
  115. int del; 
  116. cout<<"輸入要刪除的第幾個位置的節點:"
  117. cin>>del; 
  118. DeleteNode (head, del); 
  119. OutList(head); 
  120. system("pause"); 
  121. return 0; 

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品自拍小视频| 成人国产精品免费视频| 成人h猎奇视频网站| 国产精品视频99| 精品国产依人香蕉在线精品| 亚洲一区二区久久久久久久| 国产精品女视频| 国产精品自产拍在线观| 精品中文字幕久久久久久| 欧美日韩电影在线观看| 久久午夜a级毛片| 国产精品网址在线| 自拍偷拍亚洲区| 在线日韩欧美视频| 日韩av一区在线观看| 韩国19禁主播vip福利视频| 国产精品99久久久久久久久| 91老司机精品视频| 性欧美亚洲xxxx乳在线观看| 国产丝袜一区二区三区免费视频| 国产日韩欧美夫妻视频在线观看| 日韩电影免费观看中文字幕| 色狠狠久久aa北条麻妃| 欧美性生交大片免网| 国产精品伦子伦免费视频| 日韩av综合网站| 自拍偷拍亚洲区| 国产精品第100页| 成人久久久久久久| 日本91av在线播放| 欧美亚洲视频在线看网址| 91精品国产91久久久久久| 亚洲国产欧美一区二区丝袜黑人| 日本人成精品视频在线| xvideos成人免费中文版| 亚洲精品免费av| 国产日韩欧美在线视频观看| 中文字幕在线看视频国产欧美在线看完整| 九九久久综合网站| 91精品国产自产在线老师啪| 国产精品v日韩精品| 国产精品91久久| 91中文精品字幕在线视频| 日韩性生活视频| 欧美激情啊啊啊| 欧美另类极品videosbestfree| 欧美精品成人91久久久久久久| 国产精品免费久久久久久| 18一19gay欧美视频网站| 欧美日本中文字幕| 欧洲中文字幕国产精品| 国产91精品久久久久| 欧美激情xxxx| 欧美有码在线视频| 57pao成人永久免费视频| 亚洲电影免费观看高清完整版在线观看| 欧美激情videoshd| 国产国语videosex另类| 亚洲精品久久久久久久久| 欧美在线中文字幕| 91精品视频播放| 亚洲精品xxx| 色先锋久久影院av| 国产成人精品在线播放| 青青久久av北条麻妃海外网| 欧美国产在线电影| 国产精品久在线观看| 日本高清视频一区| 日韩中文字幕视频| 亚洲老头同性xxxxx| 久久综合伊人77777蜜臀| 国产欧美一区二区三区四区| 精品成人av一区| 国产精品九九久久久久久久| 欧美成人激情视频免费观看| 色噜噜狠狠狠综合曰曰曰| 自拍视频国产精品| 国产精品美腿一区在线看| 亚洲精品v欧美精品v日韩精品| 久久亚洲精品成人| 欧美大全免费观看电视剧大泉洋| 日韩在线免费高清视频| 日韩av免费在线观看| 久久精品视频在线播放| 亚洲va欧美va在线观看| 国产精品极品尤物在线观看| 欧美激情喷水视频| 中文字幕欧美日韩在线| 亚洲欧美日韩精品| 日本a级片电影一区二区| 在线观看视频99| 国产一区二区三区在线看| 国产精品一区二区久久久| 精品欧美国产一区二区三区| 亚洲一区久久久| 亚洲国产精品久久| 日韩av男人的天堂| 91在线观看免费观看| 国产精品影院在线观看| 国产精品老女人视频| 国产98色在线| 欧美激情在线观看| 午夜欧美不卡精品aaaaa| 久久天天躁夜夜躁狠狠躁2022| 欧美大片在线影院| 久久久噜噜噜久久中文字免| 久久97精品久久久久久久不卡| 欧美日韩免费在线| 成人久久18免费网站图片| 日韩有码在线视频| 亚洲欧美日韩精品久久| 国产综合久久久久| 欧美丰满少妇xxxxx做受| 98精品国产高清在线xxxx天堂| 精品亚洲va在线va天堂资源站| 亚洲欧洲国产伦综合| 国产日韩专区在线| 亚洲aa在线观看| 国产精品精品视频一区二区三区| 久久国产精品亚洲| 亚洲精品大尺度| 精品中文视频在线| 法国裸体一区二区| 国产精品自拍小视频| 亚洲欧美在线看| 国产精品高清网站| 久久精品国产2020观看福利| 欧美老妇交乱视频| 日韩精品中文字幕有码专区| 97av在线影院| 国产亚洲欧美视频| 国产精品免费网站| 5566日本婷婷色中文字幕97| 亚洲一区美女视频在线观看免费| 精品亚洲精品福利线在观看| 91精品久久久久久久久不口人| 日韩av在线不卡| 亚洲精品理论电影| 国产精品91在线| 精品久久久久久久久久久| 欧美精品videos另类日本| 国内精品美女av在线播放| 欧美成人在线免费| 亚洲欧洲视频在线| 日韩欧美极品在线观看| 91在线网站视频| 97色在线播放视频| 国产成人aa精品一区在线播放| 日韩经典一区二区三区| 亚洲国产精品视频在线观看| 俺去啦;欧美日韩| 久久国产精品视频| 欧美精品在线视频观看| 国产欧美精品一区二区三区介绍| 日本免费久久高清视频| 午夜美女久久久久爽久久| 韩国国内大量揄拍精品视频| 久色乳综合思思在线视频| 亚洲午夜色婷婷在线| 成人网在线免费观看| 国产精品2018| 少妇激情综合网| 97在线观看视频| 欧美午夜美女看片|