用一段位址連續的儲存單元依次儲存資料元素
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...