資料結構(C語言版)第二章線性表之順序儲存結構

2021-10-06 23:07:36 字數 1932 閱讀 2375

一、線性表的型別定義

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 表中元素都是資料元素,每個元素都是單個...