關於單鏈表中使用二階指標

2021-09-29 12:54:59 字數 799 閱讀 4255

首先下面兩條是一階指標和二階指標出現在函式引數中的原因

1.當函式中引數變數的值在函式中發生改變並且需要傳出到函式外面,此時的引數應使用一階指標代替之前的變數(公升階),即傳參是將變數的位址傳入函式(例如:int* 代替int)

2.類似第一條,當函式中引數為指標,並且這個指標在函式內部指向的位址發生了變化,然後這個指標在函式執行完成後需要輸出到函式外面,此時需要將這個指標引數改為二階指標(公升階),即傳參是將指標的位址傳入函式(例如  int ** 代替int*)

如果將上面兩條理解了那麼請往後看,否則請直接退出。

單鏈表的操作主要有 初始化、插入、 刪除、查詢、儲存、讀出等

1 初始化:

初始化主要是建立頭結點,鍊錶在這個地方開始建立,由無到有,鍊錶指標肯定變化了,所以引數傳入的應為二階指標

2. 插入和刪除:

插入和刪除都分兩種情況,一種是涉及到頭結點的操作,一種是頭結點之後的操作

因為鍊錶的指標一直指向鍊錶的頭結點,當涉及到頭結點時鍊錶指標都發生了變化,需要傳入二階指標。如果不涉及到頭結點一階指標完全夠用。

4. 查詢:

查詢僅僅只是另建乙個指標指向鍊錶指標,查詢過程中這個新建的指標發生變化,但是鍊錶指標不變 所以傳入引數使用一階指標。

5.儲存和讀出:

類似查詢,新建指標指向鍊錶指標,隨儲存或讀出的進行,新建指標發生變化,但是鍊錶指標不變 所以傳入引數使用一階指標。

另外也請注意 :

初始化時候需要先malloc一段記憶體用來存放頭結點,讀出和插入時候也要每次開闢記憶體存放新獲取到的結點,相反的刪除結點和頭結點時需要free掉相應malloc的記憶體。

關於單鏈表

單鏈表結構體 typedef struct student node 建立單鏈表 node create else p head while cycle else head head next p next null printf n yyy d head data return head 單鏈表測...

關於單鏈表逆置

逆置單鏈表演算法 整個過程就是圍繞這改變節點的指標域這一問題展開。具體實現 1.兩個節點指標 分別指向相鄰的兩個節點 2.儲存推進指標域的值 3.改變指標域 4.推進 如此迴圈 直到乙個節點指標指向null 另乙個節點指標指向尾節點。linklist reserver linklist head 條...

關於單鏈表的逆序

昨天的課後習題出現了乙個單鏈表的逆序問題,作為乙個志在成為程式媛的我,寫了我人生中的第一篇部落格。題目要求是 逆轉鍊錶,並返回逆轉後的頭結點。我們先考慮一下對於鍊錶逆序時可能會出現的情況 對於乙個空鍊錶 很明顯沒有資料,沒有內容,不需要逆序,之前return 對於只有乙個節點的鍊錶我們也是不需要考慮...