国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

C++教程:清除鏈表

2020-05-23 14:26:44
字體:
來源:轉載
供稿:網友
鏈表的結點也是動態分配的,如果在程序結束之前不釋放內存,就會造成內存泄漏。因此,編寫一個清除鏈表的函數就顯得相當有必要。我們先來分析一下清除這個功能:
  1. 我們必須知道對哪個鏈表進行操作,所以表頭指針head是必須知道的,并且清除整個鏈表后要將其改為NULL。
  2. 類似于刪除結點,我們還需要一個指針p來指向待刪除結點。
  3. 類似于刪除表頭結點的操作,我們仍然要先連后斷:先把表頭指向頭結點的后繼,再刪除頭結點。

下面我們來寫一下這個函數:(程序9.6.5)
void destroy(node * &head)
{
   node *p;
   while (head!=NULL)//當還有頭結點存在時
   {
      p=head;//頭結點是待刪除結點
      head=head->next;//先連
      delete p;//后斷
   }
   cout <<"The link list has been deleted!" <<endl;
}

至此,我們已經學習了鏈表的所有基本操作。下面來介紹一下數組存儲和鏈表存儲各自的優缺點。
C++教程:清除鏈表
雖然很多初學者都認為鏈表非常難以理解,但是只要掌握了插入刪除結點時“先連后斷”的原則和如何遍歷整個鏈表,所有的問題就迎刃而解了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 益阳市| 江西省| 广昌县| 凉山| 漳平市| 樟树市| 迁西县| 南平市| 柯坪县| 大化| 鄯善县| 河东区| 镇江市| 武乡县| 大同县| 若羌县| 腾冲县| 江山市| 且末县| 青冈县| 法库县| 岳池县| 临邑县| 外汇| 定襄县| 巫溪县| 旅游| 临漳县| 城步| 北票市| 禹州市| 勐海县| 德庆县| 于都县| 大田县| 庆元县| 永春县| 平度市| 台前县| 彭州市| 靖安县|