線性表的表現形式:
零個或多個資料元素組成的集合。
資料元素在位置上是有序排列的。
資料元素的個數是有限的。
資料元素的型別必須相同。
我們可以抽象出來線性表的定義:
線性表是具有相同型別的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...