線性表是最常用且最簡單得一種資料結構。簡言之,乙個線性表是n個資料元素得有限序列。
typedef
int elemtype;
typedef
struct lnodelnode,
*linklist;
#ifndef __linklist_h__
#define __linklist_h__
#include
#include
typedef
int datatype;
typedef
struct nodelistnode,
*linklist;
extern linklist list_create()
;//建立乙個空鍊錶
extern linklist list_create1()
;//尾插法建立
extern
void
list_show
(linklist h)
;//輸出
extern
void
list_reverse
(linklist h)
;//倒序輸出
extern linklist list_locate
(linklist h,
int pos)
;//按位置查詢
extern linklist list_get
(linklist h,datatype value)
;//按值查詢
extern
intlist_delete
(linklist h,
int pos)
;//按位置刪除
extern
intlist_insert
(linklist h,
int pos,datatype value)
;//按位置插入
extern
intlist_head_insert
(linklist h,datatype value)
;//頭插入
extern
intlist_order_insert
(linklist h,datatype value)
;//順序插入
extern
void
list_sort
(linklist h)
;//排序
#endif
#include
"linklist.h"
linklist list_create()
h->data =0;
h->next =
null
;return h;
}linklist list_create1()
h->data =0;
h->next =
null
; r = h;
while(1
)if((p =
(linklist)
malloc
(sizeof
(listnode)))
==null
) p->data = value;
p->next =
null
; r->next = p;
r = p;
}return h;
}void
list_show
(linklist h)
puts(""
);}linklist list_locate
(linklist h,
int pos)
while
(p->next && iif(i==pos)
return p;
else
}linklist list_get
(linklist h,datatype value)
return p;
}int
list_head_insert
(linklist h,datatype value)
p->data = value;
p->next = h->next;
h->next =p;
return0;
}int
list_insert
(linklist h,
int pos,datatype value)
else
if(p ==
null
)else
q->data = value;
q->next = p->next;
p->next = q;
return0;
}}intlist_delete
(linklist h,
int pos)
else
if(p ==
null
|| p->next ==
null
)else
}void
list_reverse
(linklist h)
}int
list_order_insert
(linklist h,datatype value)
p->data = value;
q=h;
while
(q->next && q->next->data < value)
p->next = q->next;
q->next = p;
return0;
}void
list_sort
(linklist h)
q->next = r->next;
r->next = q;
}}
makefile和test.c請自行書寫測試
資料結構 線性表鏈式儲存
對於線性鍊錶,有兩種表示方法,一種是包含頭節點的情況,如下圖 一種是不包含頭節點的情況,如下圖 本文中對線性鍊錶的表示,利用的是帶頭節點的定義方式。使用c 實現了線性鍊錶建立,初始化,刪除,插入,清空,遍歷,有序鍊錶合併等操作。煉表頭 頭指標 頭結點 煉表頭 指的是線性表第乙個元素所在結點 頭指標 ...
資料結構 線性表(鏈式儲存)
1 順序表 需要一片連續的記憶體空間,成員可以隨機訪問,訪問效率高 插入刪除資料存在資料搬移的現象,效率低 儲存密度高 鍊錶的特點 不需要連續的記憶體空間,不能隨機訪問元素,訪問效率低 插入刪除資料不存在資料搬移的現象,效率高 儲存密度比較低 2 無頭鍊錶 第乙個節點為資料節點,加入刪除第乙個節點,...
資料結構 線性表鏈式儲存結構
鏈式儲存 用一組任意的儲存單元儲存線性表中的資料元素。用這種方法儲存的線性表簡稱線性鍊錶。儲存鍊錶中結點的一組任意的儲存單元可以是連續的,也可以是不連續的,甚至是零散分布在記憶體中的任意位置上的。鍊錶中結點的邏輯順序和物理順序不一定相同。即不要求邏輯上相鄰的元素在物理位置上也相鄰 為了正確表示結點間...