資料結構C語言》3基本鍊錶》3 9具有頭結點的鍊錶

2021-09-06 03:43:02 字數 1470 閱讀 9730

具有頭結點的鍊錶,就是有乙個虛構的結點,鍊錶的中第乙個結點其實是第二個結點。

#include

<

stdlib.h

>

struct

llist

;typedef 

struct

llist node;

typedef node 

*llink;

//輸出結點值

void

printllist(llink head)

printf("\n

");}//

找結點llink findnode(llink head,

intvalue)

ptr=

ptr->

next;

}return

null;}//

創造鍊錶

llink createllist(

int*

array,

intlen)

ptr=

head;

for(i=0

; i<

len;i++)

ptr1

->

num=

array[i];

ptr1

->

next

=null;

ptr->

next

=ptr1;

ptr=

ptr1;

}return

head;}//

插入結點

llink insertnode(llink head,llink ptr, 

intnodevalue,

intvalue)

new->

num=

value;

new->

next

=null;

//找結點

llink getnode;

getnode

=findnode(head,nodevalue);

//如果沒找到結點,就是插在第乙個結點之前

if(getnode 

==null)

else

//找到指定結點,就插在指定結點後面

return

head;

}int

main(

intargc,

char

*argv)

;llink head;

head

=createllist(llist1,6);

if(!head)

printf(

"原來的鍊錶:");

printllist(head);

head

=insertnode(head,head,6,

23);

printf(

"插入後的鍊錶:");

printllist(head);}

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

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

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

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

c資料結構 鍊錶基本操作

鍊錶是一種線性結構,和順序表相比,鍊錶能充分利用磁碟上的空間,在對鍊錶進行插入刪除操作時,時間複雜度為o 1 相對於順序表,插入刪除時間複雜度為o n 但鍊錶需要額外的儲存指標的空間,且鍊錶不能隨機訪問。所以使用鍊錶還是使用順序表需要根據具體的使用場景。當多為查詢操作時使用順序表比較好,當刪除增加操...