單鏈表的讀取,插入和刪除。

2021-08-15 09:18:15 字數 868 閱讀 1709

#include

#include

#define true 1

#define false 0

#define status int

typedef struct datatype;

typedef struct node

node;

typedef struct node *linklist;

//單鏈表的讀取:用e返回l中第i個元素的值

status getelem(linklist l,int i,datatype *e)

if(!p || j>i //i<1 || i>listlength(l);

*e = p->data;

}//單鏈表的插入:在l中第i個節點位置之前插入新的資料元素e,l的長度加一

status listinsert(linklist *l,int i,datatype e)

if(!p || j>i)

s = (linklist)malloc(sizeof(node));

s->data = e;

s->next = p->next;

p-next = s;

return true;

}//單鏈表的刪除:刪除l的第i個節點,並用e返回其值,l的長度減1;

status listdelete(linklist *l,int i,datatype *e)

if(!p || j>i)

q = p->next;

p = q->next;

*e = q->data;

free(q);

return true;

}int main(int argc,char *argv)

單鏈表的讀取插入刪除

1單鏈表的讀取 宣告乙個指標p指向鍊錶中的第乙個結點,初始化j從1開始 當jstatus getelem linklist l,int i,elemtype e if p j i return error e p data return ok 2 單鏈表的插入 宣告乙個指標p指向鍊錶中的頭結點,初始...

3 2 2 單鏈表的讀取 插入和刪除

1 單鏈表的讀取 演算法思路 1 宣告乙個結點 p 指向鍊錶第乙個結點 這裡是儲存資料的第乙個節點,不是頭結點 初始化 j 從 1 開始 2 當 j i 時,就遍歷鍊錶,讓 p 的指標向後移動,不斷指向下一結點,j 累加 1 3 若到鍊錶末尾 p 為空,則說明第 i 個元素不存在 4 否則查詢成功,...

單鏈表的插入和刪除

常見的資料結構只有兩種 1 陣列 2 鍊錶 陣列中的元素是連續儲存的,而鍊錶的元素則可以不連續,只需要有指標指向下乙個元素即可。因此鍊錶適合儲存插入刪除比較頻繁的一組資料。另外鍊錶的儲存空間是動態的,不必預先分配指定的空間大小。下面介紹鍊錶的幾種常見操作。首先先定義乙個鍊錶 struct linkl...