頭插法建立鍊錶

2022-05-13 01:02:48 字數 1415 閱讀 8140

要使用鍊錶,就要先建立乙個鍊錶,這裡只說單鏈表。先介紹一下頭插法建立單鏈錶鏈表。假如我們現在要在鍊錶中插入一些資料:1、2、3、4、5,並從鍵盤輸入這些資料,

最後資料存入到鍊錶中是反過來的,即,因為頭插法每次都是在頭部插入資料的,先插入1,此時表中資料為;接著在頭部插入2,此時表中資料資料為;

再在頭部插入3,此時表中資料資料為;以此類推,最後,表中資料的順序和你輸入的順序是相反的。

為了弄明白頭插法的原理,我在網上找了一張圖來幫助理解頭插法,看圖

所謂頭插法,就是每次新加入的節點,都插入在表頭結點的後面,插在表中第乙個結點的前面,圖中obj結點就插在了a0結點的前面,以此類推。最後你會發現表中資料的順序與

你輸入的資料順序是相反的。

而頭插法建立鍊錶又分為兩種情況,一種是已知節點個數,還有一種是未知節點個數,下面用**來展示一下。先說一下未知結點個數的情況,即不確定輸入的結點個數,看**

1 #include2 #include3 typedef struct

lnode

4lnode,*linklist;89

linklist create_linklist()

10while((ch=getchar())!='\n');

27return

head; //返回頭指標

28}

29int

main()

3039 printf("\n"

);40

return0;

41 }

結果如下:

還有在已知結點個數的情況下,用**展示一下

1 #include2 #include3

#define n 10 //

結點個數

4 typedef struct

lnode

5lnode,*linklist;

910 linklist create_linklist()

1124

return

head;

25}

26int

main()

2736 printf("\n"

);37

return0;

38 }

結果如下:

通過觀察兩次的結果,可以看出用頭插法建立鍊錶時都會產生這種情況:即插入的資料與插入的順序相反。

頭插法建立鍊錶

include include typedef struct lnode lnode,linklist lnode int tail insert linklist l,int n int tail insert linklist l,int n static lnode l int headins...

頭插法建立鍊錶

介紹下頭插法建立鍊錶c 實現。說明 頭插法建立的鍊錶元素順序是和輸入的順序相反的,如果要順序保持一致,建議用尾插法。ifndef headinsert h define headinsert h include using namespace std typedef int keytype type...

頭插法建立鍊錶

問題描述 用c語言實現頭插法建立鍊錶 include include void main struct node p,q,k,h int n,x,m,b 0 printf 請輸入鍊錶的長度 scanf d m printf 請輸入鍊錶的值 scanf d n p struct node malloc...