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來記錄此時線性表中資料元素的個數,順序表的結...