線性表的順序儲存 順序表

2021-07-11 19:36:20 字數 1247 閱讀 5831

線性表,簡稱表,是n(n>=0)個具有相同型別的資料元素的有限序列。

1)線性表是乙個相當靈活的資料結構,對線性表的資料元素不僅可以進行訪問訪問,還可以進行插入和刪除等操作。

2)a1稱為第1個元素,an稱為最後乙個元素,任意一對相鄰的資料元素a(i-1)和a(i) (1序偶關係

,且a(i-1)稱為a(i)的前驅,a(i)稱為a(i-1)的

後繼。在這個序列中,元素a1無前驅,元素an無後繼,其他每個元素有且只有乙個前驅和後繼。

順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。

1.線性表中第i個元素儲存在陣列中下標為i-1的位置。

2.用陣列儲存順序表,就意味著要分配固定長度的陣列空間。因此,必須確定陣列的長度,即存放線性表的陣列空間的長度。

3.設順序表的每個元素占用c個儲存單元,則第i個元素的儲存位址為:loc(ai)=loc(a1)+(i-1)*c。容易看出,順序表中資料元素得儲存位址是其序號的線性函式,只要確    定了儲存順序表的起始位址(即基位址),計算任意乙個元素的儲存位址的時間是相等的,具有這一特點的儲存結構稱為隨機訪問結構。

優點:隨機訪問簡單

缺點:1.插入和刪除操作需要移動大量元素

2.表的容量難以確定

3.造成儲存空間的「碎片」

**:#includeusing namespace std;

const int maxsize=100;

class seqlist

/*無參建構函式,建立乙個空線性表*/

seqlist(int a,int n);/*有參建構函式,建立乙個長度為n的線性表*/

~seqlist(){} /*析構函式為空*/

int length() /*求線性表的長度*/

int delete(int i); /*刪除操作,刪除線性表的第i個元素*/

void printlist(); /*遍歷操作,按序號一次輸出各元素*/

};seqlist::seqlist(int a,int n)

int seqlist::locate(int x)

data[i-1]=x;

length++;

}int seqlist::delete(int i)

{ if(length<1) throw "下溢";

if(i<1 || i>length) throw "位置非法";

int x=data[i-1];

for(int j=i-1;j

線性表的順序儲存 順序表

一丶順序表 概念 採用順序儲存的線性表稱為順序表,順序表中邏輯上相鄰的資料元素在物理儲存位置上也是相鄰的。二丶定義順序表 用一維陣列來描述順序表的資料儲存。由於順序表有插入刪除等操作,即順序表的表長會發生改變。因此是陣列長度足夠大,加入整型變數length來記錄此時線性表中資料元素的個數,順序表的結...

線性表的順序儲存 順序表

線性表可以按照其儲存結構劃分為順序表 鍊錶。如下圖 順序表 順序表的描述 1 陣列靜態分配 define maxsize 30 typedef int elemtype typedef structsqlist 2 陣列動態分配 define maxsize 30 typedef int elemt...

線性表的順序儲存(順序表)

課程名 資料結構 實驗目的 1 掌握線性表的定義 2 掌握線性表的基本操作,如建立 查詢 插入和刪除等。實驗要求 定義乙個包含學生資訊 學號,姓名,成績 的順序表和煉表,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資訊 2 逐個顯示學生表中所有學生的相關資訊 3 根據姓名進行查詢,返回此學生...