線性表之單鏈表

2021-08-13 23:48:28 字數 1524 閱讀 3808

零個或多個資料元素的有限序列,線性表中的元素是一對一的關係,除了第乙個元素和最後乙個元素外,其他元素都是首尾相接的。線性表有兩種儲存方式,一種是順序儲存結構,另一種是鏈式儲存結構。

指用一段位址連續的儲存單元依次儲存線性表的資料元素。

優點 - 無需為表示元素間的邏輯關係而增加額外的儲存空間

- 隨機查詢元素,即查詢元素的時間複雜度為o(1)

缺點 - 插入和刪除需要移動大量元素,最壞為o(n)

- 線性表長度變化較大時,不確定儲存空間容量

- 產生儲存空間碎片

常用的陣列就是典型的線性表順序儲存結構

指用一組任意的儲存單元儲存線性表的資料元素,這組儲存單元可能連續,也可能不連續。為了表示元素之間的邏輯關係,對於元素來說,不僅要儲存本身的資料外,還要儲存乙個指示其後繼元素的位置。儲存資料元素的域稱為資料域,儲存後繼元素位置的域稱為指標域。這個元素稱為結點。

只包含乙個指標域的鍊錶稱為單鏈表

typedef

struct linklist

node, linklist, *linklistptr;

#include

#define ok 1

#define error 0

typedef int status;

typedef int elementtype;

typedef struct linklist

node, linklist, *linklistptr;

linklistptr createwithhead(int n)

return

list;

}linklistptr createwithtail(int n)

return

list;

}status insertcertainpos(linklistptr list, int pos, elementtype data)

status deletecertainpos(linklistptr list, int pos, elementtype data)

status clearlist(linklistptr list)

list

->next =

null;

return ok;

}status reverse(linklistptr list)

q->next = p;

list

->next = q;

return ok;

}status printlinklist(linklistptr list)

printf("\n");

return ok;

}int main()

單向鍊錶維基百科

單鏈表逆轉

單鏈表的轉置

鍊錶c語言實現

線性表之單鏈表

cpp view plain copy linkedlist linc 2013.2.26 include include include define ok 1 define error 1 define ture 1 define false 0 struct node typedef stru...

線性表之單鏈表

template typenamet structnode 頭結點 如果鍊錶有頭節點,則鏈式結構中的第乙個節點稱為頭結點 其資料域可以儲存一些附加資訊,如鍊表長度 其指標域指向鍊錶中的第乙個節點。template class linklist linklist t a int n linklist ...

線性表之單鏈表

一 帶頭結點的構建和插入 include includestruct lnodelnode,linklist bool initlist linklist l l next null return true bool listinsert linklist l,int i,int e lnode p...