const int maxsize=100;//儲存空間初始分配量
template class seqlist;//析構函式空
int getlength();//獲取順序表的長度
t getelement(int i);//獲取順序表的第i個元素
int getposition(t x);//獲取順序表中值為x的元素序號
void insertelement(int i,t x);//在順序表中第i個位置插入值為x的元素
t deleteelement(int i);//刪除順序表的第i的元素
void print();//按序號依次輸出順序表各元素
};
無參建構函式建立乙個空的順序表,將表長置為 0,析構函式使用預設析構函式即可。
templateseqlist::seqlist()
有參建構函式將給定陣列元素作為順序表的資料元素,傳入元素個數 n 作為順序表長度。
templateseqlist::seqlist(t a, int n)
按位查詢時,順序表中第 i 個元素儲存在陣列中下標為 i-1 的位置,時間複雜度為 o(1)
templatet seqlist::getelement(int i)
按值查詢時,需要對順序表中元素依次進行比較,查詢成功則返回元素的序號,查詢失敗則返回 0,時間複雜度為 o(n)
templateint seqlist::getposition(t x)
在順序表中的第 i 個元素刪除,需要先取出被刪除的元素,然後將第 i+1 個元素到第 n 個元素前移 1 位,最後將順序表的長度變為 n-1,其時間複雜度為 o(n)
需要注意的是,在刪除之前需要進行異常判斷,如果表空,則引發下溢異常;如果刪除位置不合理,則引發位置異常。
t seqlist::deleteelement(int i)
遍歷輸出即按照下標依次輸出各元素
templatevoid seqlist::print()
理論基礎 線性表 雙向鍊錶
template struct node template class doublelist 對於無參建構函式,只需建乙個頭結點,令其左右指標分別為空即可 template linklist doublelink template linklist doublelink t a,int n temp...
線性表 順序表
1 線性表 線性表是最基本 最簡單 也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。線性表 list,零個或多個資料...
線性表 順序表
線性結構的特點是 在非空的有限集合中,只有唯一的第乙個元素和唯一的最後乙個元素。第乙個元素沒有直接前驅元素,最後乙個沒有直接的後繼元素。其它元素都有唯一的前驅元素和唯一的後繼元素。要想將線性表在計算機上實現,必須把其邏輯結構轉化為計算機可識別的儲存結構。線性表的儲存結構主要有兩種 順序儲存結構和鏈式...