一、線性表的型別定義
1、線性結構的特點:在資料元素的非空有限集合中,
(1)存在唯一的乙個「第乙個」或「最後乙個」資料元素;
(2)除第乙個元素外,每個資料元素只有乙個前驅;
(3)除最後乙個元素外,每個資料元素只有乙個後繼;
2、線性表中的元素是多種多樣的,但同一線性表中的元素必定有相同的特性,相鄰資料元素之間存在序偶關係。
3、線性表長度與陣列長度的區別:
(1)線性表長度是指線性表中資料元素的個數,隨著線性表的插入和刪除操作,這個量是變化的;
(2)陣列長度是指存放線性表的儲存空間的長度,在儲存分配後這個量一般是不會改變的;
(3)線性表的長度 ≤ 陣列長度
易錯點:1、順序表具有隨機儲存特性,指的是查詢序號為i的元素與順序表中元素個數n無關;
2、在長度為n的單鏈表中,刪除尾節點的時間複雜度是o
(n);
二、線性表順序儲存結構的基本操作
#include
#include
#define maxsize 1024
typedef
struct
sqlist;
/*初始化構造乙個空表l*/
/*當length=0時表示表為空*/
intinitlist
(sqlist *l)
/*銷毀線性表l*/
/*當length=0時線性表為空*/
intdestroylist
(sqlist *l)
/*將線性表重置為空表*/
intclearlist
(sqlist *l)
/*判斷線性表是否為空表*/
/*若l為空表,則返回ture[1],否則返回false[0]*/
intlistempty
(sqlist l)
/*返回中資料元素的個數*/
intlistlength
(sqlist l)
/*返回l中第i個資料元素的值*/
intgetelem
(sqlist l,
int i)
/*查詢線性表中是否存在某個值*/
intlocateelem
(sqlist l,
int e)
return-1
;}
/*尋找某個非第乙個元素的前驅*/
intpriorelem
(sqlist l,
int e)
return-1
;}
/*尋找某個非最後乙個元素的後繼*/
intnextelem
(sqlist l,
int e)
return-1
;}
/*在第i個位置前插入元素e*/
intinsertelem
(sqlist *l,
int i,
int e)
l->data[i-1]
=e;//插入元素
l->length++
;//表長增加1;
return
1;
/*刪除指定位置的元素*/
intdeletelem
(sqlist *l,
int i)
l->length--
;return
1;
資料結構(C語言版) 第二章 線性表
線性表的基本操作 destroylist l clearlist l listempty l listlength l getelem l,i,e priorelem l,cur e,pre e nextelem l,cur e,next e listinsert l,i,e listdelete ...
資料結構 第二章 線性表
線性表 是具有相同型別的n n 0 個元素的有限序列,其中n為表長,當n 0時,該錶為空表。線性表的特點 線性表的九種基本操作 initlist l 初始化表。構造乙個空的線性表。destroylist l 銷毀操作。銷毀線性表,並釋放線性表l所占用的記憶體空間。locateelem l,e 按值查...
資料結構 第二章 線性表
線性表 順序儲存 鏈式儲存 順序表單鍊錶 雙鏈表迴圈鍊錶 靜態鍊錶 陣列指標實現 借助陣列實現 定義 線性表是具有相同資料型別的n n 0 個資料元素的有限序列,其中n為表長,當n 0時該線性表是乙個空表。特點 1 個數有限 2 表中元素具有邏輯上的順序性。3 表中元素都是資料元素,每個元素都是單個...