4、插入操作
線性表的插入運算是指在表的第i(1<=i<=n+1)個位置,插入乙個新元素e,使長度為n的線性表變成長度為n+1的線性表
(注意元素移動和順序表長度增加)
5、插入演算法的實現
template
void seqlist::insert(int i,t x)
5、分析
插在最後不移動元素,時間複雜性為o(1);
插在開頭需要移動n個元素,o(n);
6、刪除演算法的實現
template
void seqlist::delete(int i,t x)
時間複雜度為o(1)
②按值查詢:查詢指定的值在順序表中的位置
template
int seqlist::locate(t x);
4、單鏈表的實現
template
class linklist
linklist(t a,int n);
~linklist();
int length();
t get(int i);
int locate(t x);
void insert(int i,t x);
t delete(int i);
void printlist();
private:
node*first;//單鏈表的頭指標,可以省略
};5、頭插法
6、尾插法
四、順序表和單鏈表的比較
1、時間效能的比較
①若線性表的操作主要是進行查詢,很少做插入和刪除時,宜採用順序表做儲存結構
②對於頻繁進行插入和刪除的線性表,宜採用鍊錶做儲存結構
2、空間效能比較
儲存密度=節點資料本身所佔的儲存量/節點結構所佔的儲存總量
當線性表的長度變化不大,易於事先確定其大小時,為了節約儲存空間,宜採用順序表作為儲存結構
五、線性表的其他儲存方法
1、迴圈鍊錶、
雙向鍊錶、
靜態鍊錶:插入和刪除時不需要移動元素,直接修改指標即可,因此效率高。但是不能按需進行儲存空間的分配
2、間接定址(指標陣列)
①線性表的順序儲存的優點:支援隨機訪問
②線性表的鏈式儲存的優點:插入和刪除資料時不需要移動資料
③間接定址:將指標和陣列結合起來的一種方法,他將陣列中的儲存資料元素的單元改為儲存指向該元素的指標
資料結構線性表知識講解
定義 線性表是具有相同特性資料元素的有限序列 為什麼要具有相同特性的資料元素?把同一類事物歸類,方便用計算機進行批量處理。如果資料元素沒有相同特性,那麼就需要用很多種方法去處理這些資料,那麼將這一類資料組織在一起將沒有意義,這就失去了資料結構存在的意義。儲存結構 順序結構 相鄰資料元素的存放位址也相...
總結二 資料結構 線性表
線性表簡單的說就是n個資料元素的有限序列。特點 1.存在唯一的乙個被稱為 第乙個 的資料元素 2.存在唯一的乙個被稱為 最後乙個 的資料元素 3.除第乙個之外,集合中的每乙個資料元素均只有乙個前驅 4.除最後乙個之外,集合中每個資料元素均只有乙個後繼。按物理儲存方式分為兩大類 順序表示和鏈式表示 線...
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...