線性表的順序儲存 順序儲存的分析

2022-08-18 01:21:16 字數 1421 閱讀 7643

1,對效能和功能兩個方面的分析;

2,效率分析:

1,o 表示法;

2,最耗時的操作是插入和刪除操作,因為要移位;

3,長度相同的兩個 seqlist,插入和刪除操作的平均耗時是否相同?

1,可能不相同,因為線性表儲存的資料型別可能不同,比如字串插入比整型插入耗時的多;

4,分析**或演算法的效率,不能單純的只看時間複雜度,其只是參考指標,但是並不是絕對的,還要看當前的**或者演算法是不是在效率上真的符合需求的,要具體情況具體分析;

5,順序儲存鍊錶不適合類型別的元素儲存,適合儲存基本型別;

3,效率分析:

1,插入整型和字串之間的操作耗時是有很大區別的;

4,靜態鍊錶和動態鍊錶之間賦值操作帶來的問題:

1,靜態鍊錶之間的賦值(指標指向同乙個物件,並被釋放兩次):

2,動態鍊錶之間的賦值(指向同乙個物件,並被釋放兩次):

5,如何避免鍊錶指向同乙個物件並被釋放兩次,分析:

1,對於容器型別的類,可以考慮禁用拷貝建構函式和賦值操作(第八課已經實現了):

1,生活中兩個水杯倒水,生活中沒有辦法對容器裡面的內容進行複製;

2,面相物件:將生活中的概念平行的搬移到程式設計裡面;

2,拷貝構造是宣告的時候直接賦初始值;

1,dynamiclistl(5);

dynamiclistn = l;

3,賦值操作符是對宣告的變數賦值:

1,dynamiclistl(5);

dynamiclistn(5);

n = l;

6,線性表誤操作為陣列使用: 

1,線性表必須先插入元素,才能使用操作符 訪問元素,這裡可以作為左值使用:

2,順序儲存結構線性表提供了陣列操作符過載,通過陣列操作符過載能夠方便快捷的獲取目標位置處的資料元素,再具體的使用形式上類似陣列,但由於本質不同,不能代替陣列使用;

7,小結:

1,順序儲存線性表的插入和刪除操作存在重大效率隱患;

2,線性表作為容器類,應該避免拷貝構造和拷貝賦值;

3,順序儲存線性表可能被當成陣列誤用;

4,工程開發中可以考慮使用陣列類代替原生陣列使用;

順序儲存線性表的分析

問題 長度相同的兩個seqlist,插入和刪除操作的平均耗時是否相同?下面的 正確嗎?為什麼?2.導致上面出現問題的原因就是,拷貝建構函式和賦值操作,因此我們可以這樣解決 對於容器型別的類,可以考慮禁用拷貝構造和賦值操作。templateclass list public object 下面的 正確...

線性表的順序儲存 線性表的順序儲存結構

1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...

線性表的順序儲存 順序表

一丶順序表 概念 採用順序儲存的線性表稱為順序表,順序表中邏輯上相鄰的資料元素在物理儲存位置上也是相鄰的。二丶定義順序表 用一維陣列來描述順序表的資料儲存。由於順序表有插入刪除等操作,即順序表的表長會發生改變。因此是陣列長度足夠大,加入整型變數length來記錄此時線性表中資料元素的個數,順序表的結...