1.宣告乙個結點p指向第乙個結點,初始化j從1開始
2.當j3.若到鍊錶末尾p為空,則說明第i個元素不存在
4.否則查詢成功,將欲刪除的結點p->pnext賦值給q
5.將q結點資料賦給e
6.釋放q結點
7.返回成功
單鏈表的資料結構:
typedef
int elemtype;
typedef
struct node
node,*linklist;
實現演算法:
/*初始條件:順序線性表l已存在,1<=i<=listlength(l)*/
/*操作結果:刪除第i個元素並用e返回其值,l的長度減1 */
status getelem(linklist l, int i, elemtype *e)
if(!p || j > i)
q = p->pnext;
p->next = q->next;
*e = q->data;
free(q);
return ok;
} 2023年12月30日21:03:10
單鏈表的刪除第i個元素
刪除操作圖示 a2的節點q,要實現q的刪除,就是讓他的前繼節點p繞過a2直接指向後繼節點a3。p next p next next 單鏈表第i個資料刪除結點的演算法思路 1.宣告結點p指向鍊錶第乙個結點,初始化j 1 2.當jnext賦值給q 4.單鏈表的刪除標準語句p next q next,將q...
資料結構 (單鏈表刪除相同元素)
單鏈表作非遞減有序線性表的儲存結構。請設計乙個時間複雜度為o n 的演算法,刪除表中所有數值相同的多餘元素,並釋放結點空間。include include using namespace std typedef struct list list,lnode void initlist list l ...
刪除單鏈表中第i個節點
單鏈表的刪除操作是將單鏈表的第i個節點刪去。具體步驟如下 1 找到節點ai 1的儲存位置p,因為在單鏈表中節點ai的儲存位址是在其直接前趨節點ai 1的指標域next中 2 令p next指向ai的直接後繼節點ai 1 3 釋放節點ai的空間 include include typedef stru...