初學單鏈表碰到乙個小坑:下面**是乙個很簡單的建立並遍歷鍊錶的過程。
#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語言基礎,發現真的不怎麼樣,唉。下面是自己寫的,可能也有不少問...
資料結構 線性表之帶頭結點單鏈表
之前跟著朱老師寫的乙個帶頭結點的 建立鍊錶時有兩種方法,一種是先初始化 建立乙個空鍊錶 然後對這個空鍊錶進行結點輸入,建立鍊錶 這個時候,由於已經有了頭結點,將其傳入,直接在頭結點的後面進行操作 另外一種是將初始化和建立鍊錶放到乙個函式裡,這時候傳入的鍊錶就什麼都沒有,連頭結點也沒有 先建立頭結點,...