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

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

C++教程:鏈表節點的插入和刪除

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

插入結點

數組在內存中是順序存儲的,要在數組中插入一個數據就變得頗為麻煩。這就像是在一排麻將中插入一個牌,必須把后面的牌全部依次順移。然而,鏈表中各結點的關系是由指針決定的,所以在鏈表中插入結點要顯得方便一些。這就像是把一條鏈子先一分為二,然后用一個環節再把它們連接起來。如下圖9.6.2所示。
C++教程:鏈表節點的插入和刪除
下面我們先對插入結點這個功能具體分析一下:
  1. 我們必須知道對哪個鏈表進行操作,所以表頭指針head是必須知道的。
  2. 為了確定插入位置,插入位置前的結點指針pGuard是必須是知道的。
  3. 用一個newnode指針來接受新建的結點。
  4. 如果要插入的位置是表頭,由于操作的是表頭指針而不是一個結點,所以要特殊處理。
  5. 在插入結點的過程中,始終要保持所有的結點都在我們的控制范圍內,保證鏈表的完整性。為了達到這一點,我們采用先連后斷的方式:先把新結點和它的后繼結點連接,再把插入位置之前的結點與后繼結點斷開,并與新結點連接。如下圖9.6.3所示。
C++教程:鏈表節點的插入和刪除

做完了分析,我們可以開始編寫插入函數了。為了簡單起見,我們規定新結點插入位置為數據是關鍵字的結點之后,這樣就可以使用剛才編寫好的search函數了。如果該結點不存在,則插入在表頭。則插入函數如下:(程序9.6.3)
void insert(node * &head,char keyWord,char newdata)//keyWord是查找關鍵字符
{
   node *newnode=new node;//新建結點
   newnode->data=newdata;//newdata是新結點的數據
   node *pGuard=search(head,keyWord);//pGuard是插入位置前的結點指針
   if (head==NULL || pGuard==NULL)//如果鏈表沒有結點或找不到關鍵字結點
   {//則插入表頭位置
      newnode->next=head;//先連
     head=newnode;//后斷
   }
   else//否則
   {//插入在pGuard之后
      newnode->next=pGuard->next;//先連
      pGuard->next=newnode;//后斷
   }
}

刪除結點

與插入數據類似,數組為了保持其順序存儲的特性,在刪除某個數據時,其后的數據都要依次前移。而鏈表中結點的刪除仍然只要對結點周圍小范圍的操作就可以了,不必去修改其他的結點。
仍然我們先要來具體分析刪除結點這個功能:
  1. 我們必須知道對哪個鏈表進行操作,所以表頭指針head是必須知道的。
  2. 一般來說,待刪除的結點是由結點的數據確定的。然而我們還要操作待刪除結點之前的結點(或指針),以連接前后兩段鏈表。之前所寫的search函數只能找到待刪除的結點,卻無法找到這個結點的前趨結點。所以,我們只好放棄search函數,另起爐灶。
  3. 令pGuard指針為待刪除結點的前趨結點指針。
  4. 由于要對待刪除結點作內存釋放,需要有一個指針p指向待刪除結點。
  5. 如果待刪除結點為頭結點,則我們要操作表頭head,作為特殊情況處理。
  6. 在刪除結點的過程中,仍然要始終保持所有的結點都在我們的控制范圍內,保證鏈表的完整性。為了達到這一點,我們還是采用先連后斷的方式:先把待刪除結點的前趨結點和它的后繼結點連接,再把待刪除結點與它的后繼結點斷開,并釋放其空間。如下圖9.6.4所示。
  7. 如果鏈表沒有結點或找不到待刪除結點,則給出提示信息。
C++教程:鏈表節點的插入和刪除

由于delete是C++中的保留字,我們無法用它作為函數名,所以只好用Delete代替(C++是大小寫敏感的,Delete和delete是不同的)。都準備好了,我們就可以開始寫函數了:(程序9.6.4)
void Delete(node * &head,char keyWord)//可能要操作表頭指針,所以head是引用
{
   if (head!=NULL)//如果鏈表沒有結點,就直接輸出提示
   {
      node *p;
      node *pGuard=head;//初始化pGuard指針
      if (head->data==keyWord)//如果頭結點數據符合關鍵字
      {
         p=head;//頭結點是待刪除結點
        head=head->next;//先連
         delete p;//后斷
         cout <<"The deleted node is " <<keyWord <<endl;
         return;//結束函數運行
      }
      else//否則
      {
         while (pGuard->next!=NULL)//當pGuard沒有達到表尾
         {
            if (pGuard->next->data==keyWord)//如果pGuard后繼結點數據符合關鍵字
            {
               p=pGuard->next;//pGuard后繼結點是待刪除結點 
               pGuard->next=p->next;//先連
               delete p;//后斷
               cout <<"The deleted node is " <<keyWord <<endl;
               return;//結束函數運行
            }
            pGuard=pGuard->next;//pGuard指針向后移動
          }
      }
   }
   cout <<"The keyword node is not found or the link list is empty!" <<endl;//輸出提示信息
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩高清人体午夜| 欧美激情视频在线| 日本精品一区二区三区在线播放视频| 91久久久国产精品| 欧美高清自拍一区| 欧美午夜精品久久久久久浪潮| 久久久亚洲影院| 1769国产精品| 中文字幕欧美精品日韩中文字幕| 最近2019中文字幕mv免费看| 亚洲成人精品久久久| y97精品国产97久久久久久| 久久成人在线视频| 国产欧美在线观看| 成人午夜激情网| 精品一区二区三区四区| 国产不卡一区二区在线播放| 国产精品网址在线| 国产精彩精品视频| 欧美大尺度激情区在线播放| 国产视频丨精品|在线观看| 精品中文字幕视频| 中文字幕亚洲欧美在线| 精品久久久一区| 亚洲韩国日本中文字幕| 疯狂欧美牲乱大交777| 97久久精品国产| 亚洲电影免费观看高清完整版在线| 成人免费xxxxx在线观看| 中文字幕免费精品一区| 91在线免费视频| 日韩欧美国产免费播放| 日本一区二区在线播放| 日韩国产高清污视频在线观看| 亚洲国产中文字幕久久网| 国产精品久久久久久久久男| 亚洲色图欧美制服丝袜另类第一页| 亚洲在线免费看| 66m—66摸成人免费视频| 亚洲欧美在线一区二区| 日韩在线视频观看| 亚洲福利在线看| 伦理中文字幕亚洲| 欧美性一区二区三区| 亚洲一区二区三区毛片| 日韩免费精品视频| 欧美国产精品人人做人人爱| 欧美人与物videos| 欧美日韩午夜视频在线观看| 亚洲成人免费网站| 97超碰色婷婷| 色天天综合狠狠色| 97久久精品人搡人人玩| 91精品综合久久久久久五月天| 色婷婷综合久久久久中文字幕1| 日韩**中文字幕毛片| 日本不卡视频在线播放| 久久亚洲精品中文字幕冲田杏梨| 2020国产精品视频| 成人字幕网zmw| 日韩在线免费av| 久久精视频免费在线久久完整在线看| 成人免费视频a| 91热福利电影| 欧美黄色片在线观看| 亚洲国产精品小视频| 欧美一级黄色网| 亚洲第一精品久久忘忧草社区| 国产精品扒开腿做爽爽爽男男| 久久精品国产久精国产思思| 国产精品久久久久久久久借妻| 国产精品视频区1| 少妇久久久久久| 久久久精品免费视频| 黄色一区二区三区| 国产精品久久久久999| 国产丝袜一区二区三区免费视频| 国产不卡av在线| 久久69精品久久久久久国产越南| 日韩av在线看| 国产成人精品免高潮费视频| 欧美黄色成人网| 精品无人区乱码1区2区3区在线| 国产精品欧美一区二区| 91黑丝在线观看| 久久久久久久久91| 蜜月aⅴ免费一区二区三区| 91精品美女在线| 91精品国产亚洲| 亚洲成人在线网| 国产成人精品免高潮在线观看| 久久久精品国产| 自拍偷拍亚洲一区| 日日噜噜噜夜夜爽亚洲精品| 欧美成人在线免费| 91精品国产91久久久久久不卡| 国产精品91免费在线| 主播福利视频一区| 久久香蕉国产线看观看网| 羞羞色国产精品| 日韩大片在线观看视频| 国产精品白丝av嫩草影院| 欧美黑人性猛交| 96sao精品视频在线观看| 精品久久久精品| 国产有码在线一区二区视频| 欧美日韩在线免费观看| 国产欧美va欧美va香蕉在线| 亚洲一区二区三区四区在线播放| 精品久久久久久亚洲国产300| 亚洲女成人图区| 91美女片黄在线观| 亚洲精品国产美女| 亚洲jizzjizz日本少妇| 国产精品美女在线| 精品一区二区三区三区| 国产成人avxxxxx在线看| 亚洲精品视频在线观看视频| 欧美日韩成人网| 国产亚洲精品久久久优势| 色悠悠国产精品| 日韩成人av在线| 久久久久久这里只有精品| 精品国产老师黑色丝袜高跟鞋| 亚洲欧美成人一区二区在线电影| 欧美激情在线狂野欧美精品| 国产成人精品av| 亚洲欧美激情另类校园| 国内免费精品永久在线视频| 久久夜精品香蕉| 欧美老女人性视频| 久久香蕉国产线看观看av| 欧美多人爱爱视频网站| 欧美日韩激情网| 菠萝蜜影院一区二区免费| 国产精品久久久久aaaa九色| 亚洲女同精品视频| 久久久精品电影| 久久精品亚洲国产| 色偷偷噜噜噜亚洲男人的天堂| 亚洲国产另类久久精品| 亚洲精品自拍视频| 欧美性猛交丰臀xxxxx网站| 中文日韩电影网站| 亚洲最大的成人网| 国产精品27p| 国产精品久久久久福利| 成人福利网站在线观看| 欧美日本精品在线| 欧美精品免费播放| 中文国产成人精品| 国产精品羞羞答答| 欧美视频二区36p| 亚洲欧洲国产精品| 国产精品久久久久久久天堂| 国模私拍视频一区| 国产成人久久久精品一区| 久久久久国产精品免费网站| 成人黄色片网站| 欧美成人剧情片在线观看| 欧美日韩亚洲成人| 一区二区亚洲精品国产| 91精品国产高清自在线| 97精品视频在线观看|