1. 程式人生 > >數據結構---線性表

數據結構---線性表

所在 順序表 存在 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)

有線性表的定義可以看出同一線性表的元素必然具有相同的特性,並且這些數據元素可以是基本數據元素,可以是多個數據項組成的復雜數據元素。

常用操作應該包括:

  1. 求線性表的長度;
  2. 尋找第i個元素;
  3. 根據提供的具體元素值,查找其所在位置;
  4. 插入新數據元素;
  5. 刪除某個數據元素;
  6. 修改某個數據元素;
  7. 清空線性表;

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;
};

  

數據結構---線性表