資料結構與演算法 線性表順序儲存結構

2021-07-02 05:43:12 字數 1688 閱讀 3188

今天總結一下資料結構中的線性表中的順序儲存結構,這是一種比較簡單的結構。

首先,看一下什麼是線性表。

什麼是線性表?

線性表是一種簡單的資料結構,資料元素之間是一對一的關係,即除了第乙個和最後乙個元素外其餘元素都是首尾相接的。

元素的個數稱為線性表的長度,長度為零則表示線性表為空。

什麼是線性表的順序儲存結構?

線性表中的順序儲存結構就是把線性表中的元素按邏輯次序依次存放在一組位址連續的儲存空間中,也把這種線性表稱為順序表。根據順序表的特點,通常是用陣列來儲存元素的。

下面就看具體的實現(c++)。

定義乙個順序表的模板類,宣告相應的方法。

const int maxsize = 1000;  //定義順序表的最大長度

template //定義模板類

class seqlist

//初始化乙個含有n個元素的順序表

seqlist(const t a,int n);

int getlength() //獲取順序表的長度

return length;

}void printlist(); //列印出順序表中的元素值

void insert(int i,t x); //將元素x插入到指定的位置

t delete(int i); //刪除位置為i的元素

t get(int i); //返回位置為i的元素的值

int locate(t x); //查詢順序表中值為x的元素,返回其位置

private:

int length; //順序表長度

t data [maxsize]; //儲存資料元素的陣列

};

有引數的構造方法的實現:一次將給定陣列裡的元素賦值給data陣列,若元素個數超過順序表長度,則丟擲異常

template seqlist::seqlist(const t a,int n) 

data[i-1] =x;

length++; //陣列長度增1

}

順序表的刪除操作思路:如果表空,則丟擲異常如果刪除元素位置不存在,則丟擲位置異常取出要刪除的元素,保留下來(可以知道刪除的是哪個元素)

依次將第i+1個到n的元素,向前移動乙個位置

順序表長度減1,返回刪除的元素

template t seqlist::delete(int i) 

template int seqlist::locate(t x) ;

seqlistlist(a,6);

list.printlist();

list.insert(2,5);

list.printlist();

int x = list.delete(3);

cout<

結果:

資料結構 演算法 線性表 順序表

演算法是解決特定問題的步驟的描述。在計算機中演算法是乙個有窮 或語句 指令 的有序集合。它確定了解決某乙個問題的乙個運算序列。對於問題的初始輸入,通過演算法有限步的執行,產生乙個或多個輸出。演算法是解決問題的思想方法 程式是計算機語言的具體實現 共同點 它們的語言不能有二義性 區別 演算法不依賴計算...

資料結構與演算法 線性表

概念 一種資料結構,每個結點最多只有乙個前驅結點和乙個後繼結點 類別 順序表 定長 鍊錶 變長 棧 棧頂刪除 彈棧 棧頂插入 壓棧 後進先出 lifo 佇列 隊頭刪除 出隊 隊尾插入 入隊 先進先出 fifo 線性表的抽象資料型別定義 c 1.template2.class list 棧的抽象資料型...

資料結構與演算法 線性表

n維向量 x1,x2,xn 是乙個長度為n的線性表 英文小寫字母表 a,b,c,z 是乙個長度為26的線性表 一年中的四個季節 春,夏,秋,冬 是乙個長度為4的線性表 矩陣是乙個比較複雜的線性表 學生情況登記表是乙個複雜的線性表 由若干資料項組成的資料元素稱為記錄 由多個記錄構成的線性表又稱為檔案 ...