單雙鏈表操作的注意事項 插入,刪除,遍歷操作

2021-09-23 18:46:07 字數 942 閱讀 6844

對鍊錶進行操作時,**的順序會影響到程式的執行結果

如:對雙鏈表進行頭部插入操作時,操作順序為:

此處new->pnext = ph->pnext;語句必須要在ph->pnext = new;之前執行,因為將new賦值給ph->pnext的操作會改變 ph->pnext的值,而new->pnext = ph->pnext需要將ph->pnext未改變之前的值賦值給new->pnext,所以對值有改變的語句要後執行。

對雙鏈表的前向遍歷過程中也存在這個問題: 

賦值操作在列印語句之前的情況如下:

賦值操作在列印語句之後的情況如下: 

第二種順序輸出的結果為正確的,第一種輸入順序 總會漏掉第乙個元素。

書寫程式時的其他需要注意事項:

1.注意程式注釋的書寫,書寫函式,定義變數時,及時書寫注釋,良好的**注釋習慣能夠極大的提高程式的可讀性,同時也能夠方便後期閱讀寫過的**時能夠及時回憶起來。

2.函式命名時盡量使用對應的英文來命名,盡量不要使用漢語拼音的方式。。。

3.定義函式時若最開始無法確定傳參和返回值型別時,可先都定義為void型別,書寫過程中若發現需要傳參和返回值時,再將void換成對應的型別

單鏈表的插入和刪除操作

插入的偽 仿照c語言和python status listinsert l linklist l,int i,elemtype e 第i個位置前插入節點 注 是比較ascii碼 read p l and j 0 while p j i 1 p p next read j 1 if p j i 1 r...

小試牛刀 單鏈表 雙鏈表插入與刪除

在正文開始之前,先介紹下一些相關的背景知識。首先,什麼是鍊錶?鍊錶的實質是資料結構按照儲存結構方式劃分的一種儲存結構。如下圖1所示,煉表不像順序儲存結構那樣,在記憶體中是一塊連續的區域,相反,鍊錶是 物理離散 邏輯聯絡 即在記憶體中,儲存單元是不連續的 彼此之間沒有順序,但是彼此之間是通過鍊錶中的指...

小試牛刀 單鏈表 雙鏈表插入與刪除

在正文開始之前,先介紹下一些相關的背景知識。首先,什麼是鍊錶?鍊錶的實質是資料結構按照儲存結構方式劃分的一種儲存結構。如下圖1所示,煉表不像順序儲存結構那樣,在記憶體中是一塊連續的區域,相反,鍊錶是 物理離散 邏輯聯絡 即在記憶體中,儲存單元是不連續的 彼此之間沒有順序,但是彼此之間是通過鍊錶中的指...