国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 編程 > C++ > 正文

C++雙向循環(huán)列表用法實(shí)例

2020-05-23 14:18:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章主要介紹了C++雙向循環(huán)列表,實(shí)例分析了C++雙向循環(huán)列表的創(chuàng)建、輸出、添加、刪除、移動(dòng)的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

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

 

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

希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
中文乱码字幕高清在线观看| 免费在线播放av| 成人无遮挡免费网站视频在线观看| 亚洲精品天堂在线| 国产蜜臀在线| 伊人狠狠av| 羞羞视频在线免费看| 国产中文字幕在线观看| 国产一二在线观看| 精品国产一区二区三区不卡在线| 性网站在线观看| 最新av免费看| 国产一级视频| 福利在线观看| 国产一级免费| 激情丁香婷婷| 精品麻豆视频| 国产精品毛片一区二区三区四区| 伊人222成人综合网| av在线播放国产| 91久久麻豆| 国产黄色免费电影| 麻豆电影传媒二区| 在线视频色在线| 粉嫩av一区| av在线免费观看网| 国产91久久久久| 国产精品伦一区二区三区级视频频| japanese色国产在线看视频| 国产丝袜自拍| 免费黄网站在线观看| 在线免费观看你懂的| 国产三级在线免费观看| 国产女王在线**视频 | 伊人影院蕉久影院在线播放| 免费的黄网站在线观看| 在线黄色.com| 永久免费网站在线| 国产超碰在线观看| 国产黄视频网站| 国产成人综合亚洲欧美在| 国产在线看片| 国产中文字幕在线看| 欧美日韩视频精品一区二区| 亚洲成av人影片在线观看| √天堂资源中文www| 国产福利在线| 中文字幕2020第一页| av福利在线观看| 任你操视频在线观看| eeuss影院在线观看| 久久这里精品| 五月婷婷视频在线观看| 蜜桃视频中文字幕| 九九热视频在线| 天堂在线亚洲| 精精国产xxxx视频在线动漫| 最近中文字幕mv免费高清电影| 欧美日韩综合高清一区二区| 九九久久久2| 免费视频中文字幕| 中文字幕在线播放网址| 国产三线在线| 夜夜操天天干| 天堂在线中文资源| 99热99re6国产在线播放| www.夜夜操.com| 国产乱妇乱子在线播视频播放网站 | 高清视频一区二区三区四区| 成人免费一区二区三区牛牛| 国产人成精品| 免费看黄视频网站| 国产不卡视频| 六月天色婷婷| 中文字幕av高清| 午夜av在线播放| 日本综合一区二区三区| 国产黄色在线播放| 国产91大片| 亚洲天堂电影在线观看| 国产无套粉嫩白浆在线2022年| 国产精品视频h| 久久国产热视频| 日本h视频在线观看| 精精国产xxxx视频在线动漫 | 九九精品视频在线观看九九| 精品视频二区三区| 国产网站av| 国产免费视频在线| 免费日本黄色| 日本视频一二三区中文字幕| 精品国产福利一区二区在线 | 任你操视频在线观看| 在线观看视频污| 精品视频vs精品视频| 国产对白在线| 97国产在线| 97一区二区三区| 国产午夜精品久久久久免费视 | 狠狠综合久久久综合| 玖玖在线视频| 国产美女视频一区二区三区 | 午夜在线不卡| 性国产高清在线观看| av在线免费播放网站| 日韩亚洲一区中文字幕| www.操.com| 嫩草在线播放| 激情亚洲综合网| 最新黄网在线观看| 国产亚洲精品久久久久久移动网络 | 国产无遮挡又黄又爽免费网站 | 国产网站免费看| 国产99在线|亚洲| 在线播放黄色网址| 99免费视频| www.操.com| 国产精品外围在线观看| 国产视频2区| 在线免费观看黄色av| 免费黄网站在线观看| 最新国产在线| 在线视频xx| 男女午夜视频在线观看| 中文字幕在线观看播放| 在线观看av资源网| 中文字幕中文字幕在线中高清免费版| 午夜伦全在线观看| 国产精品第八页| 六月天色婷婷| 国产激情在线| 国产尤物视频在线| 中文av在线播放| 在线91av| 欧美日韩性视频一区二区三区| 国产毛片毛片毛片| 一本久久精品| 国产一区二区三区不卡免费观看 | av中文在线| 国产永久免费高清在线观看视频| 中文字幕在线免费观看| 性欧美精品xxxx| 国产精品伦一区二区三区视频| av在线官网| 99热国产在线| 国产三级视频在线看| 二区三区中文字幕| 青青草中文字幕| 亚洲综合在线免费| 在线一区观看| 91亚洲天堂| 国产导航在线| 国产成人综合美国十次| 国产免费一级| 黄色毛片在线观看| 免费观看久久久久| 本道综合精品| 四虎在线免费视频| 伊人影院蕉久影院在线播放| 国产精品bbw一区二区三区| 国产美女福利在线观看| 青青青青在线| 福利视频在线看| 国产免费av在线| 黄网址在线播放免费| 黄色av网站在线免费观看| 久热免费在线视频| 国产乱精品一区二区三区| 日本欧洲一区| 免费在线看v| 国产麻豆一级片| 国产视频xxxx| av网址在线播放| 狠狠插狠狠操| 国产xxx在线| www.av在线| 91福利在线免费| 999在线视频| 九九热在线观看| 国产欧美久久久久久久久| 中文av在线播放| 久久久久久五月天久久久久久久久| 二区中文字幕| 国产欧美日韩专区| av在线你懂的| 国产精品入口麻豆完整版| 亚洲欧美国产另类首页| 久久综合精品视频| 五月亚洲综合| 天天草天天草| 国产区视频在线观看| 亚洲欧美精选| 国产精品久久久高清免费 | 99re热视频在线| 天天操天天操一操| av中文资源在线| 国产激情在线| 免费a级毛片在线观看| 在线黄色av| 69国产精品视频|