資料結構C語言》3基本鍊錶》3 5鍊錶的結點刪除

2021-09-06 03:42:00 字數 2503 閱讀 2699

又重複了鍊錶建立,鍊錶輸出,鍊錶結點遍歷,

主角當然是鍊錶結點刪除。

鍊錶結點刪除,有三種情況:

情況1,刪除頭結點。只要把鍊錶結構指標,指向第二個結點。

情況2,刪除最後結點。只要把倒數第二個結點的next指標指向null就行。

情況3,刪除中間結點。只要把中間結點的上乙個節點next指標指向中間結點的next指標指向的地方就行。

鍊錶結點遍歷,就是為了找出要刪除的結點的上乙個節點。

具體**如下:

/***************************************** 

*//*

程式例項: 3_5.c                     

*//*

鏈結串列的節點刪除                    

*//*

**************************************** 

*/#include 

<

stdlib.h

>

struct

llist                       

/*串列結構宣告          */;

typedef 

struct

llist node;         

/*定義新型態            

*/typedef node 

*llink;               

/*定義新型態指標        

*//*

---------------------------------------- 

*//*

鏈結串列的列印                          

*//*

---------------------------------------- 

*/void

printllist(llink ptr)

printf("\n

");                  

/*換行                  */}

/*---------------------------------------- 

*//*

鍵結串列的建立                          

*//*

---------------------------------------- 

*/llink createllist(

int*

array,

intlen)

return

head;}/*

---------------------------------------- 

*//*

鏈結串列的節點走訪                      

*//*

---------------------------------------- 

*/llink findnode(llink head,

intnum)

return

ptr;}/*

---------------------------------------- 

*//*

鍵結串列的節點刪除                      

*//*

---------------------------------------- 

*/llink deletenode(llink head,llink ptr)

return

head;}/*

---------------------------------------- 

*//*

主程式: 找到郵寄編號後, 將之刪除.       

*//*

---------------------------------------- 

*/void

main()

; /*

陣列內容        

*/llink head;                     

/*指向串列開始          

*/llink ptr;

intnum;                       

/*郵寄編號變數          

*/head 

=createllist(llist1,

6);   

/*建立串列              

*/if( !

head )

printf(

"原來的鍊錶: ");

printllist(head);              

/*列印原來串列          

*/while( 1

)}else

exit(

1);                 

/*結束離開              */}

}

資料結構C語言》3基本鍊錶》3 5鍊錶的結點刪除

又重複了鍊錶建立,鍊錶輸出,鍊錶結點遍歷,主角當然是鍊錶結點刪除。鍊錶結點刪除,有三種情況 情況1,刪除頭結點。只要把鍊錶結構指標,指向第二個結點。情況2,刪除最後結點。只要把倒數第二個結點的next指標指向null就行。情況3,刪除中間結點。只要把中間結點的上乙個節點next指標指向中間結點的ne...

資料結構3 鍊錶

鍊錶是儲存許多同型別的資料元素組成的有序列表。鍊錶如同火車,人數決定車箱數,人多就向系統申請多加乙個車廂,人少就去除乙個車廂。這種動態分配記憶體的方式,按需分配,可以避免記憶體的浪費。int p val int型別的指標p指向val 動態記憶體分配 就是程式在執行的時候向系統申請記憶體,程式執行結束...

資料結構 鍊錶(3)

現在我們可以回頭總結一下我們的鍊錶 鍊錶是乙個由節點組成的一條鏈。每個節點包含兩條資訊 序列中儲存的是一些資料 節點中有指向列表中下乙個節點的鏈結。我們可以從第乙個單元格開始跟隨著link指標,遍歷整個鍊錶。如同下圖所示 左邊是乙個節點,右邊是由節點組成的鍊錶 鍊錶是用於儲存元素序列的資料結構。每個...