具有頭結點的鍊錶,就是有乙個虛構的結點,鍊錶的中第乙個結點其實是第二個結點。
#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 但鍊錶需要額外的儲存指標的空間,且鍊錶不能隨機訪問。所以使用鍊錶還是使用順序表需要根據具體的使用場景。當多為查詢操作時使用順序表比較好,當刪除增加操...