插入鍊錶的注意點(很基礎但是很重要)

2022-01-22 13:31:27 字數 604 閱讀 7891

**於嚴蔚敏的資料結構鍊錶插入:

status listinsert.sq(sqlist &l, int i, elemtype e) 

q = &(l.elem[i - 1]); // q 為插入位置

for(p = &(l.elem[l.length - 1]); p >= q; --p)

*q = e; // 插入e的值

++l.length; // 表長增1

return ok;

}

如果為原先的鍊錶插入乙個值,需要考慮以下幾點:

(1)插入的位置 i 是否合法,是否在 鍊錶的長度範圍之內;

if (i < 1 || i > l.length + 1) return error;  // i 值不合法

(2)根據語言的結構,判斷是否需要寫重新增加的結點結構;

if (l.length >= l.listsize)

(3)接(2),如果需要新增結點結構,判斷是否分配成功;

if (!newbase) exit(overflow);  // 儲存分配失敗

雙向鍊錶按順序新增的注意點

雙向鍊錶按順序新增node的時候,要先處理node後面的指標,再處理node前面的指標,原因在於 如果先把node和鍊錶前半截連起來,鍊錶前半截指向鍊錶後半截的指標就沒了,這樣後半截鍊錶就找不到了 先把node和鍊錶後半截連起來,這樣由於node是可以直接找到的,所以可以進行將node和鍊錶前半截連...

鍊錶定義 鍊錶的插入 鍊錶的刪除 鍊錶的查詢

鍊錶的定義 鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個 頭指標 變數,以head表示,它存放乙個位址。該位址指向乙個元素。鍊錶中每乙個元素稱為 結點 每個結點都應包括兩個部分 一為使用者需要用的實際資料,二為下乙個結點的位址。因此,he...

有序鍊錶的插入

已知乙個遞增有序鍊錶l 帶頭結點,元素為整數 編寫程式將乙個新整數插入到l中,並保持l的有序 輸入 輸入分三行 第一行 元素個數 第二行 元素的值,元素間用空格分隔。第三行 待插入的元素值 輸出 開頭有空格 code include include include 函式狀態碼定義 define tr...