數據結構---線性表
阿新 • • 發佈:2019-03-24
所在 順序表 存在 tle move true class length 序表
1線性表的邏輯結構
線性表示n>>0個數據元素a1,a2,a3,...an-1,an的有序集合,表中每個元素ai在表中的位置僅取決於元素本身的序號i。相鄰左側元素為其直接前驅,相鄰右側元素為其直接後繼,由此可知第一個元素只有直接後繼,最後一個元素僅有直接前驅。n為線性表的長度,長度為0的為空表。線性表的特點是數據元素之間存在著一對一的關系。
符號表示:L = (a1,a2,a3,...an-1,an)
有線性表的定義可以看出同一線性表的元素必然具有相同的特性,並且這些數據元素可以是基本數據元素,可以是多個數據項組成的復雜數據元素。
常用操作應該包括:
- 求線性表的長度;
- 尋找第i個元素;
- 根據提供的具體元素值,查找其所在位置;
- 插入新數據元素;
- 刪除某個數據元素;
- 修改某個數據元素;
- 清空線性表;
2線性表的抽象類定義
線性表可以分為順序表和鏈式表兩大類,它們具有相似的特性和操作,因此我們可以定義一個線性表的抽象類,為它們通過統一的對外接口。
template <class type> class ablist { public: ablist(); ~ablist(); int GetLength(return length);//返回線性表的長度 virtual type Get(int i); //取出線性表的第i個元素 virtual bool MakeEmpty() = 0;//清空線性表 virtual bool Set(int i, type value) = 0; //修改線性表第i個元素為value virtual bool Insert(int i, type value) = 0; //在線性表第i個位置處插入元素value virtual type Remove(int i) = 0; //刪除線性表第i個元素 virtual type Remove1(type value) = 0; //刪除線性表值為value的元素 protected: int length; };
數據結構---線性表