線性表依據儲存方式分為順序表和煉表(鍊錶包括單鏈表、雙鏈表、迴圈鍊錶),依據操作限制分為棧、佇列。
順序表,即是資料在記憶體中佔據連續的記憶體單元,方便訪問成員,但是刪除和插入操作不便。
#define list_init_size 5
#define list_increment 5
typedef
int seqtype;
//儲存單元型別
typedef
struct
sqlist;
/**
* 初始化順序表,分配list_init_size*int大小的記憶體空間
* 初始化實際長度和當前分配長度
*/int
initlist_sq
(sqlist *l)
/**
* 插入順序表
* 下標是負數就插入到結尾,下標大於實際長度則預設追加到末尾,長度不夠則新增記憶體
* 第乙個形參為結構體指標,第二個為插入元素位置,第三個為插入的值
*/int
insertlist_sq
(sqlist *l,
int index,seqtype val)
l->elem = newbase;
l->listsize +
= list_increment;}if
(index <0)
//下標是負數,插入到結尾
index = l->length;
if(index > l->length)
//尋找合適的插入位置,index後面的元素向後移動
int i = l->length;
for(i;i>index;i--
) l->elem[index]
= val;
//插入元素
l->length++
;return1;
}
/**
* 輸入引數為要刪除的元素值,只刪除第乙個出現的值
*/int
removelist_sq
(sqlist *l, seqtype val)}if
(index <0)
for(
; tmp < l->length -
1; tmp++
) l->length--
;return index+1;
}
/**
* 輸入引數為要查詢的元素值,只返回第乙個出現的值在順序表中的下標值
* 若返回值為-1則表示未找到
*/int
findlist_sq
(sqlist *l, seqtype val)
}return-1
;}
/**
* 銷毀順序表
*/void
destorylist_sq
(sqlist *l)
//列印順序表
void
display_sq
(sqlist *l)
資料結構(C語言)線性表(順序表)
首先線性表的基本函式 1.initlist l 建立乙個空的線性表l 2.destorylist l 如果線性表已經存在的話,則銷毀線性表l 3.listlength l 返回線性表的元素個數 4.getlist l,i e 用e返回線性表第i個元素的值 5.locateelem l,e compa...
資料結構 C語言線性表 順序表
線性表是最常用且最簡單的一種資料結構。簡言之,乙個線性表是n個資料元素的有限序列。在資料元素的非空有限集合中 存在唯一的乙個被稱做 第乙個 的資料元素 存在唯一的乙個被稱做 最後乙個 的資料元素 除第乙個之外,集合中的每個資料元素均只有乙個前驅 除最後乙個之外,集合中每個資料元素均只有乙個後繼 in...
C語言資料結構線性表 順序表2
include define ok 1 define error 0 define maxsize 100 定義資料元素型別 typedef structelemtype 定義順序線性表 typedef structsqlist 初始化線性表 void inistlist sqlist pl 建立線...