国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

對C++鏈表進(jìn)行解讀分析

開發(fā) 后端
使用C++語言來進(jìn)行開發(fā)時,C++鏈表是最為常見,并且經(jīng)常需要使用到的數(shù)據(jù)結(jié)構(gòu)之一,例如創(chuàng)建鏈表、插入、刪除。

C++語言是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的很好的學(xué)習(xí)工具,能夠全面的理解了C++中C++鏈表的作用和用途,那么對于理解其C++描述,Java描述都就輕而易舉了,以后學(xué)習(xí)什么語言都不會覺得難了。

鏈表的交換節(jié)點的含義是:給定一個單鏈表,要求交換其中的任意兩個節(jié)點。注意這里鏈表的頭節(jié)點是不參與節(jié)點交換的。這個看上去是比較簡單,但是實現(xiàn)起來卻還是需要一定的基本功。

對于這個問題,關(guān)鍵是要用4個指針來保存兩個交換的節(jié)點的前后節(jié)點位置,具體實現(xiàn)請參見實現(xiàn)源碼。實際上,還有一個邏輯更加清晰的實現(xiàn):只要用兩個指針保存當(dāng)前的兩個交換節(jié)點的前一個節(jié)點。#t#

然后依次刪除待交換節(jié)點,再在記錄的前一個節(jié)點后交替插入刪除的兩個節(jié)點,也就是實際上將這個過程轉(zhuǎn)化為了對于C++鏈表的兩個基本操作就可以完成了。但是要注意的是,這個實現(xiàn)中當(dāng)兩個交換節(jié)點是相鄰節(jié)點的時候會出現(xiàn)問題,要單獨處理,具體原因手工操作一次即可得知。后一種方法這里就不給出了。

實現(xiàn)代碼中要說明的是,交換C++鏈表節(jié)點傳入的是兩個交換節(jié)點指針,但是為了測試簡單實現(xiàn),將這兩個節(jié)點換成了待交換節(jié)點的關(guān)鍵字(值域),再到C++鏈表中定位。

具體實現(xiàn)源碼為:

  1. //Link.h  
  2.   #include <iostream> 
  3.   #include <ctime> 
  4.   struct Node  
  5.   {  
  6.   public:  
  7.   Node():_val(0),_next(NULL)  
  8.   {  
  9.   }  
  10.   Node(int val):_val(val),_next(NULL)  
  11.   {  
  12.   }  
  13.   Node(int val,Node* next):_val(val),_next(next)  
  14.   {  
  15.   }  
  16.   ~Node()  
  17.   {  
  18.   if (_next)  
  19.   delete _next;  
  20.   }  
  21.   public:  
  22.   int _val;  
  23.   Node* _next;  
  24.   };  
  25.   typedef Node* LinkNode;  
  26.   Node* CreateLink(int len,int MAX_BOUND = 100)  
  27.   {  
  28.   srand((unsigned int)time(NULL));  
  29.   LinkNode head = new Node(-1);  
  30.   LinkNode tmp = head;  
  31.   for (int i = 0; i < len; ++i)  
  32.   {  
  33.   //tmptmp = tmp->_next = new Node(rand() % MAX_BOUND);  
  34.   tmptmp = tmp->_next = new Node(i);  
  35.   }  
  36.   tmp->_next = NULL;  
  37.   return head;  
  38.   }  
  39.   void ExchLinkNode (const LinkNode head,int i1,int i2)  
  40.   {  
  41.   //head不準(zhǔn)被交換  
  42.   LinkNode prenode1 = NULL;  //保存待交換節(jié)點node1的前一個節(jié)點  
  43.   LinkNode postnode1 = NULL; //保存待交換節(jié)點node1的后一個節(jié)點  
  44.   LinkNode prenode2 = NULL;  //保存待交換節(jié)點node2的前一個節(jié)點  
  45.   LinkNode postnode2 = NULL; //保存待交換節(jié)點node2的后一個節(jié)點  
  46.   LinkNode node1 = NULL;     //保存待交換的節(jié)點  
  47.   LinkNode node2 = NULL;     //保存待交換的節(jié)點  
  48.   LinkNode tmp = head;  
  49.   //定位兩個節(jié)點  
  50.   while ((tmp->_val != i1) && (tmp != NULL))  
  51.   {  
  52.   tmptmp = tmp->_next;  
  53.   }  
  54.   if (tmp == NULL)  
  55.   {  
  56.   return ;  
  57.   }  
  58.   else  
  59.   {  
  60.   node1 = tmp;  
  61.   }  
  62.   tmp = head;  
  63.   while ((tmp->_val != i2) && (tmp != NULL))  
  64.   {  
  65.   tmptmp = tmp->_next;  
  66.   }  
  67.   if (tmp == NULL)  
  68.   {  
  69.   return ;  
  70.   }  
  71.   else  
  72.   {  
  73.   node2 = tmp;  
  74.   }  
  75.   //不得和頭節(jié)點交換  
  76.   if (node1 == head)  
  77.   {  
  78.   return ;  
  79.   }  
  80.   else if (node2 == head)  
  81.   {  
  82.   return ;  
  83.   }  
  84.   //自己和自己就不必交換了  
  85.   if (node1 == node2)  
  86.   {  
  87.   return ;  
  88.   }  
  89.   tmp = head;  
  90.   while (tmp->_next != node1)  
  91.   {  
  92.   tmptmp = tmp->_next;  
  93.   }  
  94.   prenode1 = tmp;  
  95.   tmp = head;  
  96.   while (tmp->_next != node2)  
  97.   {  
  98.   tmptmp = tmp->_next;  
  99.   } 
責(zé)任編輯:chenqingxiang 來源: javaeye.com
相關(guān)推薦

2010-02-06 09:46:46

C++單向鏈表

2010-01-13 18:47:53

C++教程

2010-01-20 17:48:07

C++ 函數(shù)重載

2010-01-15 17:18:57

C++源程序

2010-01-11 15:36:08

C++代碼

2010-01-11 11:16:37

C++編程

2010-01-21 14:07:14

CC++聲明

2010-01-13 11:10:17

C++庫函數(shù)

2010-02-01 11:22:09

C++虛函數(shù)

2010-02-05 16:46:58

C++ TinyXml

2010-01-15 10:41:06

CC++

2010-01-15 15:52:18

CC++

2010-01-13 14:35:10

Visual C++

2010-01-28 10:33:10

C++開發(fā)程序

2010-01-20 14:35:55

C++調(diào)用

2010-02-22 15:49:35

Python應(yīng)用程序

2010-02-05 11:23:01

C++聲明語法

2010-02-06 16:59:19

C++ kmp算法模板

2010-02-03 15:58:51

C++ timer

2010-02-04 09:33:08

C++指針重載
點贊
收藏

51CTO技術(shù)棧公眾號

美国欧美日韩国产在线播放| 成人激情文学综合网| xvideos亚洲| 成人国产免费电影| 亚洲欧美另类小说| 一级特黄性色生活片| 成人黄色在线视频| 免费的一级黄色片| 蜜桃一区二区三区四区| 日本黑人久久| 久久一二三四| 久久久久久国产精品免费免费| 欧美二区不卡| 成人免费观看网站| 欧美精品一区二区三区久久久竹菊| 国产精品一区二区久久| 精品免费视频| 国产精品三级网站| 久久久久久久久99精品大| 国产极品精品在线观看| 国产欧美久久一区二区三区| 国产精品久久久久久av下载红粉| 国产一区二区三区日韩精品| 国产精品久久久久久久久久ktv| 免费视频国产一区| 国产一区香蕉久久| 在线看片成人| 日韩av图片| 国产99一区视频免费| 免费观看日韩毛片| 国产精品天天看| 诱人的瑜伽老师3hd中字| 欧美日韩国产精品一区| 久久视频www| 精品久久久久久久人人人人传媒 | 色婷婷狠狠综合| 日本国产在线| 在线看国产一区| 9999精品成人免费毛片在线看| 国产亚洲精品美女久久久| 成人黄色91| 国产精品xxxxx| 亚洲一区二区网站| 天天做天天躁天天躁| 中文欧美字幕免费| 肉丝一区二区| 日韩精品中文在线观看| 高清日韩中文字幕| 亚洲www永久成人夜色| 奇米影视一区二区三区| 蜜臀av午夜一区二区三区 | 牛夜精品久久久久久久| 欧美视频二区36p| 国产社区精品视频| 日本成人激情视频| 亚洲人人精品| 日韩欧美一区二| 福利视频导航一区| 成av人片在线观看www| 97在线视频一区| 亚洲制服av| 国产aaaaa毛片| 欧美性受xxxx| 欧美h版在线观看| 国产精品一区在线观看| 97精品国产露脸对白| 日本在线视频1区| 在线日韩精品视频| 欧美在线看片| 8x8x最新地址| 欧美精品一区二区三区高清aⅴ | 中文字幕亚洲欧美| 羞羞色午夜精品一区二区三区| 超碰在线免费观看97| 亚洲成av人片观看| 一呦二呦三呦精品国产| 91在线精品观看| 国产日韩在线不卡| 国产探花视频在线观看| 国产精品专区h在线观看| 国产91高潮流白浆在线麻豆| 精品影院一区| 91精品久久久久久9s密挑| 日本毛片在线免费观看| 亚洲国产毛片aaaaa无费看| 99青草视频在线播放视| 精品久久久av| 国产精品久久国产愉拍| 91制片厂毛片| 精品久久久久香蕉网| 国产在视频线精品视频www666| av不卡在线免费观看| 亚洲一区二区美女| 国产精品色婷婷在线观看| 久久久com| 国产精品久久久久久久岛一牛影视 | 精品美女在线观看视频在线观看| 韩国欧美亚洲国产| 国产一区二区电影| 免费超碰在线| 国产精品日本精品| 久久久久99精品国产片| 一个人看的www视频在线免费观看| 成人在线观看视频网站| 99久久精品国产观看| 久久五月精品中文字幕| 91网在线免费观看| 亚洲欧美影音先锋| 亚洲欧洲一二区| 天堂精品一区二区三区| 色综合色综合色综合色综合色综合 | 久久精品一二三| 在线视频超级| 亚洲国产一区二区三区在线播 | 一夜七次郎国产精品亚洲| 中文一区在线| 黄色av网站在线| 国产精品吹潮在线观看| 国产精品国产三级国产普通话三级| 日韩国产网站| 激情五月六月婷婷| 亚洲第一精品电影| 日韩电影网1区2区| 日韩伦理电影网站| 日韩精品最新在线观看| 欧美喷水一区二区| 9久re热视频在线精品| 国产在线看片| 日本成人三级电影网站| 欧美精品一区二区三区视频| 麻豆精品一二三| 黄在线观看免费网站ktv| 一本色道婷婷久久欧美 | 风间由美一区二区三区在线观看| 精品人人视频| 看一级黄色录像| 亚洲区中文字幕| 国产一区二区不卡在线| 黄页在线观看免费| 五月天综合网| 亚洲色无码播放| 国产人成一区二区三区影院| 黑人巨大精品| 91在线看www| 亚洲色图一区二区三区| 在线精品国产亚洲| 国产一区亚洲二区三区| 久久久国产视频| 日韩成人18| 青青青在线视频播放| 色偷偷偷综合中文字幕;dd| 国产999精品久久久久久绿帽| 欧美成人影院| 亚洲欧美一区在线| 日本不卡视频一区二区| 91久久精品国产91久久| 91福利视频网站| 伊人久久婷婷| 精品国产丝袜高跟鞋| 亚洲高清在线观看一区| 亚洲美女中文字幕| 91丝袜国产在线播放| 高潮按摩久久久久久av免费| 中出福利视频| 国产区一区二区三区| 欧美一区二区久久| 免费观看日韩电影| 久久av日韩| 男人本色网站| 国产视频一区二区不卡| 日韩午夜av电影| 国产成人av电影| 国产精东传媒成人av电影| 在线观看入口黄最新永久免费国产| 成人动漫在线观看视频| 亚洲国产中文字幕在线观看| 亚洲18在线| 1024在线视频| 欧美日韩亚洲一区二区三区四区| 精品亚洲aⅴ在线观看| 国产欧美日本一区二区三区| 亚洲深深色噜噜狠狠爱网站| av剧情在线观看| 日韩一区二区三区三四区视频在线观看 | 亚洲一区二区三区四区| 裸体裸乳免费看| 午夜精品蜜臀一区二区三区免费 | 免费看黄色a级片| 欧美一区二区三区四区在线| 91精品国产综合久久精品性色 | 一区二区三区四区不卡| 欧美一区二区三区图| 精品福利一区二区三区| 日本一区二区三区高清不卡| 精品不卡视频| 久久男人av| 色网在线免费观看| 亚洲s色大片在线观看| 日韩a∨精品日韩在线观看| 国产亚洲欧美一区二区三区|