『壹』 順序存儲結構和鏈式存儲結構的優缺點
存儲空間
順序存儲結構是要求事先分配存儲空間的,即靜態分配,所以難以估計存儲空間的大小。估計過大會造成浪費,估計太小又容易造成空間溢出。
而鏈式存儲結構的存儲空間是動態分配的,只要計算機內存空間還有空閑,就不會發生溢出。
另外還可以從存儲密度的角度考慮,存儲密度的定義公式為:一般來說,存儲密度越大,存儲空間的利用率就越高。
顯然,順序存儲結構的存儲密度為1,而鏈式存儲結構的存儲密度小於1。
運算時間
順序表是一種順序存儲結構,對表中任一結點都可以在O(1)時間復雜度下直接訪問;而訪問鏈表中的某個結點時,必須從頭指針開始沿著鏈表順序查找,時間復雜度為O(n)。
鏈表順序查找,時間復雜度為O(n)。
因此,如果對線性表的操作以查找為主,則採用順序存儲結構較好;若以插入、刪除為主,則採用鏈式存儲結構為宜。
『貳』 順序存儲結構和鏈式存儲結構優缺點
順序存儲結構和鏈式存儲結構的區別
鏈表存儲結構的內存地址不一定是連續的,但順序存儲結構的內存地址一定是連續的;
鏈式存儲適用於在較頻繁地插入、刪除、更新元素時,而順序存儲結構適用於頻繁查詢時使用。
順序存儲結構和鏈式存儲結構的優缺點:
空間上
順序比鏈式節約空間。是因為鏈式結構每一個節點都有一個指針存儲域。
存儲操作上:
順序支持隨機存取,方便操作
插入和刪除上:
鏈式的要比順序的方便(因為插入的話順序表也很方便,問題是順序表的插入要執行更大的空間復雜度,包括一個從表頭索引以及索引後的元素後移,而鏈表是索引後,插入就完成了)
例如:當你在字典中查詢一個字母j的時候,你可以選擇兩種方式,第一,順序查詢,從第一頁依次查找直到查詢到j。第二,索引查詢,從字典的索引中,直接查出j的頁數,直接找頁數,或許是比順序查詢最快的。
『叄』 C語言二級考試循環鏈表是循環隊列的鏈式存儲結構
循環隊列本身是一種順序存儲結構,而循環列表是一種鏈式存儲結構。兩者之間是平級關系。
線性鏈表是線性表的鏈式存儲結構,包括單鏈表,雙鏈表,循環鏈表等。
隊列的順序存儲結構一般採用循環隊列的形式。
循環隊列的操作是按數組取摸運算的,所以是順序存儲,而循環鏈表本身就是收尾相連的,所以循環鏈表不是循環隊列,兩種不同的存儲結構,雖然實現的功能是一樣的,實現循環兩種方式 順序存儲就是循環隊列,鏈式存儲就是循環鏈表。
(3)鏈式存儲的原因擴展閱讀:
1、比順序存儲結構的存儲密度小(鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,相比順序存儲結構增加了存儲空間)。
2、邏輯上相鄰的節點物理上不必相鄰。
3、插入、刪除靈活 (不必移動節點,只要改變節點中的指針)。
4、查找節點時鏈式存儲要比順序存儲慢。
5、每個節點是由數據域和指針域組成。
6、由於簇是隨機分配的,這也使數據刪除後覆蓋幾率降低,恢復可能提高。
『肆』 請問「多個棧共存時,最好用鏈式存儲空間作為存儲結構」,這是為什麼啊
如果只有兩個棧,則可以將一個放在數組的低空間,一個放在高空間,兩者從兩頭向中間擴展,這樣沒有空間浪費
如果多於兩個棧時,還是採用順序存儲,則一個滿了另外棧空間雖然有空,但是必須要移動棧中元素才能使用別的浪費的空間,這樣演算法的效率就不高了,此時不如直接採用鏈接存儲好了
『伍』 鏈式存儲結構的存儲密度小,反而空間利用率卻比順序存儲結構的大為什麼
因為鏈式存儲結構的存儲空間在邏輯上是連續的,但是在物理上是離散的;而順序存儲結構的存儲空間在邏輯上是連續的,在物理上也是連續的。
鏈式存儲可以將一些零碎的小空間鏈接起來組成邏輯上連續的空間,因此空間利用率較高;而順序存儲是佔用磁碟上一片連續的物理空間,小於存儲要求的那些空間不能被使用,因此會跳過那些小存儲空間,往後尋找滿足要求的連續的存儲空間,於是空間利用率就變低了。
但是,順序存儲中所有存儲單元存儲的都是數據信息;而鏈式存儲中每個存儲節點除了存儲數據信息外,還需要使用一個鏈域來指向下一個存儲結點,這樣就可以將物理上離散的空間鏈接成邏輯上連續的,因此存儲同樣大小的內容時,鏈式存儲所用空間比順序存儲所用空間要大,所以存儲密度就小些。
『陸』 線性表鏈式存儲結構的優點和缺點有什麼
一、線性表鏈式存儲結構的優點:
1、均勻性:雖然不同數據表的數據元素可以是各種各樣的,但對於同一線性表的各數據元素必定具有相同的數據類型和長度。對於線性鏈表,可以從頭指針開始,沿各結點的指針掃描到鏈表中的所有結點。
2、有序性:各數據元素在線性表中的位置只取決於它們的序號,數據元素之前的相對位置是線性的,即存在唯一的第一個和最後一個的數據元素,除了第一個和最後一個外,其它元素前面均只有一個數據元素(直接前驅)和後面均只有一個數據元素(直接後繼)。
二、線性表鏈式存儲結構的缺點:
線性表鏈式存儲結構不要求邏輯上相鄰的元素在物理位置上是相鄰,因此,它沒有順序存儲結構所具有的弱點,但也同時失去了順序表可隨機存取的優點。
(6)鏈式存儲的原因擴展閱讀:
線性表鏈式存儲結構的其他介紹:
一般在計算機的硬碟中,文件都是鏈式存儲的。我們知道,多個扇區組成一個簇,簇是計算機存儲數據的基本單位。
而一個文件是存儲在多個在空間上也許並不相連的簇中的,這就是鏈式存儲。但是為了能夠讀取出這個文件,計算機會在該文件第一部分的尾部寫上第二部分所在的簇號。
另一部分的尾部又寫上第三部分,以此類推,最後一部分寫上一段代碼,表示這是該文件的最後一部分。值得一提的是,高簇號在後。(如代碼所示的1234實為簇3412)文件所佔簇可認為是隨機分配的。