順序儲存的線性表

2021-10-04 18:31:56 字數 2504 閱讀 3488

線性表:n(n>=0)個相同特性的資料元素的有限序列,資料元素之間具有線性關係。

線性關係:除第乙個元素外,每個元素有且僅有乙個前驅;除最後乙個元素外,每個元素有且僅有乙個後繼。

特點:資料元素之間的關係是它們在資料集合中的相對位置。

靜態順序儲存:

#define maxsize 100;

typedef 資料元素型別 elemtype;

typedef

struct

seqlist;

動態順序儲存

typedef 資料元素型別 elemtype;

typedef

struct

pseqlist;

這種順序儲存結構,無論是靜態分配還是動態分配,儲存空間都是一次性得到的、位址連續的,因此空間的大小是有限制的:maxsize。

所以空間不夠的時候只能申請更大的空間,把原來的陣列中的元素複製過來,然後釋放原陣列。

申請空間的c語言函式:

void

*malloc

(size_t size)

void

*callo

(size_t num,size_t size)

void

*realloc

(void

*ptr,size_t size)

建立空表

靜態的

//靜態的

void

create

(seqlist &l)

動態的

void

create

(pseqlist &l)

}

求長度

int

length

(seqlist l)

查詢

int

search

(seqlist l, elemtype x)

順序儲存的線性表的類定義:

typedef elemtype t;

class

seqlist

intlength()

const

intsearch

(t &x)

const

;//返回元素x在表中的位置

void

delete

(int i, t &x)

;//刪除值為x的元素

intisempty()

intisfull()

t getdata

(int i)

t getprior

(t &x)

;//取x前驅元素

t getnext

(t &x)

;//取x的後繼元素

void

printlist()

;//輸出線性表

};

建構函式

//建構函式,指定sz定義陣列的長度

seqlist::

seqlist

(int sz)

else

}}

查詢函式:

返回的是從左往右第乙個元素值等於x的元素下標

//順序查詢x

int seqlist::

search

(t &x)

const

插入元素

//插入元素到第i個位置

void seqlist::

insert

(int i,

const t &x)

if(i<

0||i>last+1)

for(

int j=last; j>i; j++

) data[i]

= x;

last++

;}

刪除元素

//刪除第i個元素

void seqlist::

delete

(int i)

last--

; cout<<

"成功刪除!"

<}else

cerr<<

"下標越界!"

<}

線性表的順序儲存 線性表的順序儲存結構

1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...

線性表順序儲存

線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...

線性表順序儲存

時間複雜度效率 o 1 o logn o n o nlogn o n 2 o n 3 o 2 n o n o n n 線性表順序儲存 線性表 順序儲存 include include define maxsize 1024 typedef int elementtype typedef struct...