接著今天中午的內容,還是那段**,加入了鍊錶的插入和刪除還有整表刪除,個人感覺單個元素的刪除不太好;理解。
#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 頭結點,作用就是表示單鏈表的頭 後面我們每新增乙個結點,就直接加入到鍊錶的最後 遍歷 通過乙個輔助變數,幫助來遍歷整個鍊錶 第...