單鏈表建立且遍歷之帶頭結點與不帶頭結點

2021-10-06 18:56:49 字數 710 閱讀 5990

初學單鏈表碰到乙個小坑:下面**是乙個很簡單的建立並遍歷鍊錶的過程。

#include

#include

#include

typedef

struct studentlinklist;

linklist *

creat

(int n)

//建立鍊錶 ,為指標函式,返回的是乙個指標

end->next=

null

;//迴圈結束後,尾節點中的指標指向空

return head;

}void

link_print

(linklist *list)

}int

main()

程式輸出:

糾結了一會這個遍歷結果怎麼會有「0」輸出,後來發現原因在於建立的是帶頭結點的單鏈表,頭結點裡的數值預設為null,列印出來就是0,而我在遍歷的過程中,是直接從頭結點開始遍歷的,故輸出結果不符合預期。

修改後遍歷的函式:

void

link_print

(linklist *list)

}

之後程式輸出沒問題,我真是stupid!

單鏈表的建立(帶頭結點以及不帶頭結點)

include stdio.h include stdlib.h typedef struct list list list headcreatlist 頭插法建立鍊錶,不帶頭結點 return head list tailcreatlist 尾插法建立鍊錶,不帶頭結點 r next s 將l指向的...

帶頭結點的單鏈表基本操作 建立,逆置,插入

網上看了好多的單鏈表的 有些寫的很好,有些寫的異常判斷稍微少了些,有些寫的不太符合自己的想法,所以自己也來整理一下,哈哈 參加工作也有段時間了,對於帶結點的單鏈表操作倒是沒有怎麼用過,畢竟都是呼叫的公司的庫函式,最近一段時間想回來再看看c語言基礎,發現真的不怎麼樣,唉。下面是自己寫的,可能也有不少問...

資料結構 線性表之帶頭結點單鏈表

之前跟著朱老師寫的乙個帶頭結點的 建立鍊錶時有兩種方法,一種是先初始化 建立乙個空鍊錶 然後對這個空鍊錶進行結點輸入,建立鍊錶 這個時候,由於已經有了頭結點,將其傳入,直接在頭結點的後面進行操作 另外一種是將初始化和建立鍊錶放到乙個函式裡,這時候傳入的鍊錶就什麼都沒有,連頭結點也沒有 先建立頭結點,...