在順序表中插入或者刪除乙個元素,平均需要移動表中一半的元素,具體移動的元素個數與表長和該元素在表中的位置有關。
線性表是具有相同特性的資料元素的乙個有限序列。
線性表的三個特徵:1.所有資料元素型別相同2.線性表是由有限個資料元素構成的3.線性表中資料元素是位置有關的線性表中結點的集合是有限的,結點間的關係是一對一的。
順序表中訪問任意一結點的時間複雜度均為o(1),因此,順序表也稱為隨機訪問的資料結構。
順序表邏輯上相鄰的元素的物理位置必定相鄰。單鏈表中邏輯上相鄰元素的物理位置不一定相鄰。
在單鏈表中,除了首元結點外,任一結點的儲存位置由其直接前驅結點的鏈域的值指示。
在n個結點的單鏈表中要刪除已知結點*p,須找到它的前驅結點的位址,其時間複雜度為o(n)。
鍊錶的每個結點可包含多個指標域,分別存放多個指標,比如雙向鍊錶的結點可以包含兩個指標。
鍊錶的儲存結構是無序。
鍊錶的結點不會移動,只是指標內容改變。
順序表適合隨機訪問,鍊錶適於順序訪問。
順序儲存方式優點是儲存密度大,但是插入、刪除運算效率低。
鏈式儲存的儲存結構所佔儲存空間分兩部分,一部分存放結點值,另一部分存放表示結點間關係的指標。
線性表l在需不斷對l進行刪除插入的情況下適用於鏈式結構實現。
單鏈表的儲存密度小於1。
順序表的插入和刪除演算法的時間複雜度均為o(n)。
根據線性表鏈式結構中每乙個結點包含的指標數,將線性表分為單鏈表與雙鏈表。
鏈結儲存利用引用來表示資料元素之間的邏輯關係。
線性表中,若經常要訪問第i個資料元素及其前驅,則宜採用順序表儲存方式。
在單鏈表中,增加乙個頭結點的目的是為了方便運算的實現。
在鍊錶中,若經常要刪除表中最後乙個結點或在最後乙個結點之後插入乙個新結點,宜採用雙向鍊錶儲存方式。
順序表的儲存密度等於1;單鏈表的儲存密度小於1。
單鏈表將s節點插入p節點之後:s.next = p.next;p.next = s;帶頭結點的單鏈表head為空的判定條件是head.next==null
資料結構 線性表知識總結
4 插入操作 線性表的插入運算是指在表的第i 1 i n 1 個位置,插入乙個新元素e,使長度為n的線性表變成長度為n 1的線性表 注意元素移動和順序表長度增加 5 插入演算法的實現 template void seqlist insert int i,t x 5 分析 插在最後不移動元素,時間複雜...
資料結構之線性表知識點小結(一)
0 由零個或多個資料元素組成的有限序列 一般公司的組織架構是否屬於線性關係?分析 一般公司的總經理管理幾個總監,每個總監管理幾個經理。每個經理都有各自的下屬個員工 一對多1 抽象資料型別就是把資料型別和相關操作 在一起 2 合併線性表 void unionl list la,list lb 3 線性...
線性表知識點
具有相同 每個元素所佔空間一樣大 資料型別的n個資料元素的有限序列,n為表長,當n 0為空表 ai i為位序 a1 表頭,an表尾 直接前驅 直接後繼 初始化 分配記憶體空間 銷毀 釋放記憶體空間 插入 指定位置插入指定元素,注意!儲存空間是否滿,插入元素要跟前後相鄰 刪除 刪除指定並用e返回被刪除...