考研資料結構與演算法 單鏈表的建立和讀取(2)

2021-06-21 14:37:38 字數 1426 閱讀 8407

接著今天中午的內容,還是那段**,加入了鍊錶的插入和刪除還有整表刪除,個人感覺單個元素的刪除不太好;理解。

#include#include#define ok 1

#define error 0

#define true 1

#define false 0

typedef int status;

typedef int elemtype;

typedef struct node

node;

typedef struct node *linklist;

status getelem(linklist l, int i, elemtype *e);

status listinsert(linklist *l, int i, elemtype e);

status listdelete(linklist *l, int i, elemtype *e);

status initlist(linklist *l, int n);

status freelist(linklist *l);

void showlist(linklist l);

int main(void)

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

if(!p || j>i)

*e = p->data;

return ok;

}status listinsert(linklist *l, int i, elemtype e)

if(!p||j>i)

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

s->data = e;

s->next = p->next;

p->next = s;

return ok;

}status initlist(linklist *l, int n)

r->next = null;

return ok;

}void showlist(linklist l)

printf("\n");

}status listdelete(linklist *l, int i, elemtype *e)

if( (!p->next) || j>i )

return error;

s = p->next;

p->next = s->next;

*e = s->data;

free(s);

return ok;

}status freelist(linklist *l)

(*l)->next = null;

return ok;

}

ps:codeblocs實在是用不慣,換回了vs 10,嗯 沒別得了。

考研資料結構筆記 單鏈表

單鏈表結點定義 typedef struct lnodelnode 定義單鏈表結點型別 尾插法建立單鏈表 頭結點 原有結點 新節點的位置 void createlistr lnode c,int a,int n r next null c的尾結點指標域置為null,c建立完成 頭插法建立單鏈表 頭結...

單鏈表(演算法與資料結構)

鍊錶 單鏈表 為每個結點新增1個指標域,每個結點包括兩個域 資料域 存放元素本身資訊 指標域 存放後繼結點的儲存位置 指向鍊錶中第乙個結點的指標,稱為這個鍊錶的頭指標。最後乙個元素的指標不指向任何結點,稱為空指標,圖示中用 表示,在演算法中用 null 表示 帶頭結點的單鏈表 頭結點 可以不存資訊,...

資料結構與演算法 單鏈表

鍊錶是有序的列表,但是它在記憶體中是儲存如下 鍊錶是以節點的方式來儲存的 鍊錶的各個節點不一定是連續儲存的 鍊錶分帶頭結點的鍊錶和不帶頭結點的鍊錶 新增先建立乙個 head 頭結點,作用就是表示單鏈表的頭 後面我們每新增乙個結點,就直接加入到鍊錶的最後 遍歷 通過乙個輔助變數,幫助來遍歷整個鍊錶 第...