線性表的順序儲存結構

2021-10-04 12:03:50 字數 2470 閱讀 6798

用一段位址連續的儲存單元依次儲存資料元素

1、c++中用陣列儲存順序表

2、順序表是一種隨機訪問結構 loc(ai)=loc(a1)+(i-1)×c

3、線性表中的元素型別不固定,所以需要使用模板機制

const

int maxsize =

1000

;template

<

class

t>

class

seqlist

;

無參建構函式:用於建立空順序表

template

<

class

t>

seqlist

::seqlist (

)

有參建構函式:建立乙個長度為n的順序表 ——使用含有n個元素的陣列a初始化

偽**

[1] 若n太大,則丟擲異常

[2] 將陣列a中的各個元素賦值到data陣列中

[3] 修改順序表長度

//有參建構函式,使用含有n個元素的陣列a初始化

template

<

class

t>

seqlist

::seqlist

(const t a,

int n)

template

<

class

t>

void seqlist

::printlist()

偽**

[1] 若表滿,則丟擲上溢異常

[2] 若插入位置錯誤,則丟擲位置異常

[3] 從最後乙個元素到第i個元素,順序後移

[4] 將x存放到第i個元素位置

[5] 修改順序表長度加1

void  seqlist

::insert

(int i, t x)

偽**

[1] 如果表空,則丟擲下溢異常;

[2] 如果刪除元素位置不合理,則丟擲位置異常;

[3] 取出將被刪除的元素;

[4] 依次從第i+1個元素開始到第n個元素分別前移乙個位置;

[5] 表長減1,並返回被刪元素的值。

t  seqlist

::delete

(int i)

按值查詢

//查詢線性表中值為x的元素,找到後返回其位置

//設data[0]預設不儲存順序表資料元素

template

<

class

t>

int seqlist

::locate

(const t x)

按位查詢

//獲取線性表第i個位置上的元素

template

<

class

t>

t seqlist

::get

(int i)

#include

"seqlist.h"

void

main()

; seqlist <

int>

list

(a,7);

list.printlist ();

list.insert (1,

0); list.printlist ();

int x = list.delete (8)

; cout <<

"刪除元素:"

<< x << endl;

list.printlist ();

int p = list.locate (4)

; cout <<

"元素4的位置:"

<< p << endl;

}

seqlist的實質是乙個容器,用來儲存同型別的多個資料,並且封裝了一些演算法,以簡化上層的應用。

優點

1 結構簡單

2 可直接定位表中元素,隨機查詢速度快

缺點

1 儲存空間靜態分配,難以選擇合適的儲存容量。

2 插入刪除需要移動大量元素,平均需要移動一半元素,效率較低。

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

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

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

線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。adt list 資料關係 r1 adt list 容易混的概念 引用符號 和引用型操作沒有關係 加工型操作 ...

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

include include using namespace std define ok 1 define error 0 define list init size 100 define listincrement 10 typedef int status typedef int elemty...