**於嚴蔚敏的資料結構鍊錶插入:
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...