通過了對第二章的學習,我知道了線性表儲存資料時主要通過順序表儲存結構和鏈結儲存結構。而鏈結儲存結構又以單鏈表為代表。下面我就說一下我通過老師的講解和書本上的知識說明一下我理解中的順序表和單鏈表。
首先是順序表。順序表是用一段位址連續的儲存單元一次儲存線性表的資料元素。順序表是用一堆陣列來實現的,也可以利用類似於陣列
的形式訪問,即通過下標訪問。定義的時候是一次申請n個連續的空間,不管最後存放的資料是多少,都占用計算機記憶體的n個單位。所以定義的時候要注意線性表的陣列空間長度。順序表的空間分配方式屬於靜態分配。由於順序表的特性,所以在每一次插入和刪除中都會移動近一半的結點。如果當每個結點的資訊資料很大的時候就會花費很多的時間。但是當需要查詢資料時順序表就會因隨機儲存結構而對錶中的任意結點都可在o(1)時間內直接取得。
然後是單鏈表。單鏈表是用一組任意的儲存單元存放線性表的元素。這組儲存單元可以使連續的和不連續的,也可以零散嘚分布在記憶體中的任意位置。單鏈表的結點分為資料域和指標域。資料域用來存放資料,指標域用來存放該結點的後繼結點的指標。鍊錶通過每個結點的指標域將線性表的n個結點按其邏輯順序鏈結在一起。因為單鏈表中每個結點的儲存位址是存放在其前趨結點next域中,而開始結點無前趨,故應設頭指標first指標指向開始結點。
鍊錶由頭指標唯一確定,單鏈表可以用頭指標的名字來命名。單鏈表是順序儲存結構,所以當要查詢某一結點時需要掃瞄整個鍊錶。平均時間效能為o(n)。單鏈表的優點在於動態分配記憶體空間。使用者需要多少空間就申請多少空間。當單鏈表在鍊錶上任意位置進行插入或者刪除操作時只需要修改指標就可以了。
綜上所述。當線性表長度變化較大,難以估算儲存空間時,採用單鏈表儲存結構較好。當線性表需要進行較多的查詢操作時,採用順序表結構較好。當線性表需要進行較多插入或者刪除操作時,採用單鏈表儲存結構較好。
以上是我對順序表和單鏈表的理解。有何不對的地方還請老師多多指教。
順序表和單鏈表的比較
順序表與鍊錶的比較 一 順序表的特點是邏輯上相鄰的資料元素,物理儲存位置也相鄰,並且,順序表的儲存空間需要預先分配。它的優點是 1 方法簡單,各種高階語言中都有陣列,容易實現。2 不用為表示節點間的邏輯關係而增加額外的儲存開銷。3 順序表具有按元素序號隨機訪問的特點。缺點 1 在順序表中做插入 刪除...
順序表與單鏈表的比較
順序表和單鏈表的優缺點對比 順序表的優點,無需為表示表中元素之間的邏輯關係而增加額外的儲存空間 可以快速的訪問表中的任意位置的元素。順序表的缺點,插入後刪除操作需要移動大量元素 當線性表長度不穩定時,儲存空間難確定,容易造成儲存空間碎片。對於單鏈表 鏈式儲存即元素儲存的記憶體單元可以是不連續,分散的...
順序表和單鏈表的比較 c 實現刪除單鏈表結點
順序表和單鏈表的比較 訪問方式 順序表和順序訪問,也可以隨意訪問,鍊錶只能從表頭順序訪問元素。查詢,插入刪除操作 對於按值查詢,當順序表在無序情況下,兩者的時間複雜度均為o n 而當順序表有序時,可以採用折半查詢,此時時間複雜度為log2n.對於按序號查詢,順序表支援隨機訪問,時間複雜度為o 1 而...