零個或多個資料元素的有限序列,線性表中的元素是一對一的關係,除了第乙個元素和最後乙個元素外,其他元素都是首尾相接的。線性表有兩種儲存方式,一種是順序儲存結構,另一種是鏈式儲存結構。
指用一段位址連續的儲存單元依次儲存線性表的資料元素。
優點 - 無需為表示元素間的邏輯關係而增加額外的儲存空間
- 隨機查詢元素,即查詢元素的時間複雜度為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...