資料結構之單鏈表刪除第i個元素並用e返回其值的演算法

2021-09-04 04:34:56 字數 631 閱讀 3127

資料結構之單鏈表區第i個元素的演算法演算法思路: 

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...