鍊錶的基本操作(C語言實現

2021-10-25 15:20:27 字數 2546 閱讀 2971

鍊錶的基本操作(c語言實現)

#include

#include

#define ok 1

#define error 0

typedef

int elemtype;

typedef

int status;

typedef

struct lnodelnode,

*linklist;

status initlist_l

(linklist &l)

status emptylist_l

(linklist l)

else

} status destroylisy_l

(linklist &l)

} status clearlist_l

(linklist &l)

l->next==

null

;printf

("清空成功\n");

return ok;

}status lengthlist_l

(linklist l)

return i;

}status getelem_l

(linklist l,

int i,elemtype &e)if(

!p||j>i)

return error;

e=p->data;

return ok;

} lnode *

locateelem1_l

(linklist l,elemtype e)

status locateelem2_l

(linklist l,elemtype e)

if(p)

return j;

else

return0;

}status insertlist_l

(linklist &l,

int i,elemtype e)if(

!p||j>i-1)

return error;

s=(linklist)

malloc

(sizeof

(lnode));

s->data=e;

s->next=p->next;

p->next=s;

return ok;

}void

display

(linklist l)

}status deletelist_l

(linklist &l,

int i,elemtype &e)if(

!(p->next)

||j>i-1)

return error;

q=p->next;

p->next=q->next;

e=q->data;

free

(q);

return ok;

}int

main()

display

(l);

printf

("刪除第幾個資料\n");

scanf

("%d"

,&i)

;deletelist_l

(l,i,e)

;//刪除

display

(l);

printf

("查詢第幾個資料的值\n");

scanf

("%d"

,&i)

;int e2;

getelem_l

(l,i,e2)

;//取第i個數的值

printf

("第%d個的值為%d\n"

,i,e2);

lnode *e1;

int c;

printf

("請輸入您要查詢的資料\n");

scanf

("%d"

,&c)

;

e1=locateelem1_l

(l,c)

;//查詢 返回l中值e的位址

printf

("位址為%p\n"

,&e1->data)

;printf

("請輸入您要查詢的資料\n");

//查詢 返回l中值e的位置序號

scanf

("%d"

,&c)

; i=

locateelem2_l

(l,c)

;printf

("是第%d個資料\n"

,i);

int a;

a=lengthlist_l

(l);

//求鍊錶長度

printf

("鍊錶長為%d\n"

,a);

clearlist_l

(l);

//清空

destroylisy_l

(l);

//銷毀

}

C語言實現鍊錶基本操作

之前說過順序表的基本操作。顯然,順序表有乙個很大的缺點,就是做插入刪除操作的時候,往往要做很大量的元素移動的操作。這裡我們討論另外一種線性表的表示方法 鏈式儲存結構。由於它不需要邏輯上的相鄰的元素在物理位置上也相鄰,因此它沒有順序儲存結構所具有的弱點,但是同時也失去了順序表的可隨機訪問的有點。inc...

2 8靜態鍊錶基本操作(C語言實現)

上節,我們初步建立了乙個靜態鍊錶 本節學習有關靜態鍊錶 的一些基本操作,包括對錶中資料元素的新增 刪除 查詢和更改。本節是建立在已能成功建立靜態鍊錶的基礎上,因此我們繼續使用上節中已建立好的靜態鍊錶學習本節內容,建立好的靜態鍊錶如圖 1 所示 圖 1 建立好的靜態鍊錶 例如,在圖 1 的基礎,將元素...

鍊錶概念,以及基本操作C語言實現

鍊錶是一種物理儲存結構上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的 實際中煉表的結構非常多樣,以下情況組合起來就有8種鍊錶結構 1.單向 雙向 2.帶頭 不帶頭 3.迴圈 非迴圈 帶頭雙向迴圈鍊錶 結構最複雜,一般用在單獨儲存資料。實際中使用的鍊錶資料結構,都是帶頭...