插入演算法的思路:
/*初始條件:順序線性表l已存在,1<=i<=listlength(l),*/
/*操作結果:在l中第i個位置之前插入新的元素e,l的長度加1*/
#define ok 1
#define error 0
#define true 1
#define false 0
typedef int status;
status listinsert(sqlist *l,int i,elemtype e)
l->data[i-1]=e; /*將新元素插入*/
l->length++; /*表長度加1*/
return ok;
}
刪除演算法的思想:
/*初始條件:順序線性表已經存在,1<=i<=listlength(l)*/
/*操作結果:刪除l的第i個元素,並用e返回其值,l的長度減1*/
status listdelete(sqlist *l,int i,elemtype *e)
l->length--;
return ok;
}
優點:
缺點:
順序儲存結構的插入與刪除
看了幾個例子,心中有了些底子,把前面有些程式分割開,慢慢寫出來。插入演算法思路 1.如果插入不合理,丟擲異常 2.如果線性表長度大於等於陣列長度,則丟擲異常或動態增加容量 3.從最後乙個元素開始向前遍歷到第i個位置,分別將它們都向後移動乙個位置 4.將要插入元素填入位置i處 5.表長加1.在l中第i...
線性表順序儲存結構的插入和刪除
1 順序鍊錶的插入操作。status listinsert sqlist l,int i,elemtype e if i 1 i l length 1 當i不在這個範圍內時 if i l length 若插入資料位置不在表尾 l data i 1 e 將新的元素插入 l length return ...
資料結構順序表的插入與刪除
如果要再第三元素的地方插入的話要把第三個元素整體往後移,把新元素插入第三個位置 整個長度為5 由於要再第三個位置插入資料元素三,所以j 5for迴圈所負責的是把三號位置的資料元素整體往後移一位 把資料元素放在第三個位置實質是放在陣列下標為2的位置上 再進行相關操作中一定要進行合法性判斷避免插入位置前...