資料結構 線性表

2021-08-13 17:20:06 字數 849 閱讀 3840

線性表的表現形式:

零個或多個資料元素組成的集合。

資料元素在位置上是有序排列的。

資料元素的個數是有限的。

資料元素的型別必須相同。

我們可以抽象出來線性表的定義:

線性表是具有相同型別的n(n >= 0)個資料元素的有限序列,(a0,a1,a2,a3,a4,,,,,an-1),其中ai叫表項,即資料元素,n為表長。

線性表的存在有它獨有的性質:

a0為線性表的第乙個元素,只有乙個後繼元素。 a

n-1為線性表的最後乙個元素,只有乙個前驅元素。

所以除了首尾兩個元素之外其它元素既有乙個前驅也有乙個後繼。

線性表直接支援逐項訪問和順序訪問。

線性表只是乙個抽象的概念,那我們在程式中應該如何描述並使用乙個線性表?

首先考慮一下線性表能幹什麼?

將元素插入線性表。

將元素從線性表刪除。

獲取目標位置處元素的值。

設定目標位置處元素的值。

獲取線性表的長度。

清空線性表。

我們在程式中將線性表根據它的特點抽象出乙個類:

template class list : public object

;

其中object類中實現了對new和delete,new和delete的過載,目的在於實現可移植性強。

使用泛型程式設計適用於各種型別。

總結:線性表在程式中表現為一種特殊的資料型別。

線性表是資料元素的有序並且有限的集合。

線性表中的資料元素必須是型別相同的。

線性表可用於描述排隊關係的問題。

線性表在c++中表現為乙個抽象類。

資料結構(線性表)

1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...

資料結構 線性表

參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...

資料結構 線性表

線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...