(一)線性表
1.擅長存取任一指定序號的元素+對第一個和最后一個元素插入刪除
2.支持隨機存取
3.插入和刪除元素時,移動元素的個數與該元素的位置有關
4.邏輯上相鄰的元素,其物理位置必定相鄰
5.插入:1≤i≤n+1,移動n-i+1個元素
6.刪除:移動n-i個元素
(二)單鏈表
1.(❌)將N個數據按照從小到大順序組織存放在一個單向鏈表中。如果采用二分查找,那么查找的平均時間復雜度O(logN)
🍂數組二分查找的平均復雜度是O(logN),鏈表的遍歷只能是從第一個往后,所以二分查找法不能用於鏈表結構。
2.設h為不帶頭結點的單向鏈表。在h的頭上插入一個新結點t
的語句是:t->next=h; h=t;
3.創建一個包括n個結點的有序單鏈表的時間復雜度是O(n2)
🌰每生成一個新的結點,都要遍歷比較之后再插入
(三)循環鏈表、雙向鏈表、靜態鏈表
1.(❌)在一個設有頭指針和尾指針的單鏈表中,執行刪除該單鏈表中最后一個元素的操作與鏈表的長度無關
🌰還要遍歷一次,找到倒數第二個元素,當成尾指針
2.
將線性表La和Lb頭尾連接,要求時間復雜度為O(1),且占用輔助空間盡量小。應該使用哪種結構?
A 單鏈表
B 單循環鏈表
C 帶尾指針的單循環鏈表
D 帶頭結點的雙循環鏈表
3.如果對線性表的運算只有2種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用(只有表尾指針沒有表頭指針的循環單鏈表):尾指針的下一個就是頭指針鴨!