Ⅰ 順序存儲方式只能用於存儲線性結構嗎
不是。
順序存儲方式不僅能用於存儲線性結構,還可以用來存放非線性結構,例如完全二叉樹是屬於非線性結構,但其最佳存儲方式是順序存儲方式。
數據的邏輯結構包括線性結構、樹、圖、集合這四種,在線性結構裡面又有線性表、棧、隊列等等。而數據的存儲結構只有兩種:順序存儲結構和鏈式存儲結構,這兩種存儲結構,前面一個是利用數據元素在存儲器中的相對位置表示其邏輯結構,另外一個是用指針來表示其邏輯關系。
順序存儲結構
的主要優點是節省存儲空間,因為分配給數據的存儲單元全用存放結點的數據(不考慮c/c++語言中數組需指定大小的情況),結點之間的邏輯關系沒有佔用額外的存儲空間。
採用這種方法時,可實現對結點的隨機存取,即每一個結點對應一個序號,由該序號可以直接計算出來結點的存儲地址。但順序存儲方法的主要缺點是不便於修改,對結點的插入、刪除運算時,可能要移動一系列的結點。
Ⅱ 順序存儲結構和鏈式存儲結構的優缺點
存儲空間
順序存儲結構是要求事先分配存儲空間的,即靜態分配,所以難以估計存儲空間的大小。估計過大會造成浪費,估計太小又容易造成空間溢出。
而鏈式存儲結構的存儲空間是動態分配的,只要計算機內存空間還有空閑,就不會發生溢出。
另外還可以從存儲密度的角度考慮,存儲密度的定義公式為:一般來說,存儲密度越大,存儲空間的利用率就越高。
顯然,順序存儲結構的存儲密度為1,而鏈式存儲結構的存儲密度小於1。
運算時間
順序表是一種順序存儲結構,對表中任一結點都可以在O(1)時間復雜度下直接訪問;而訪問鏈表中的某個結點時,必須從頭指針開始沿著鏈表順序查找,時間復雜度為O(n)。
鏈表順序查找,時間復雜度為O(n)。
因此,如果對線性表的操作以查找為主,則採用順序存儲結構較好;若以插入、刪除為主,則採用鏈式存儲結構為宜。
Ⅲ 完全二叉樹為什麼最適合順序存儲結構
順序存儲充分利用滿二叉樹的特性,即每層的節點數分別為1、2、4、8等等2i+1,一個深度為i的二叉樹最多隻能包含2i-1個節點,因此只要定義一個長度為2i-1的數組即可存儲這顆二叉樹。
對於普通的不是滿二叉樹的,那些空出來的節點對應的數組元素留空即可,因此順序存儲會造成一定的空間浪費。如果是完全二叉樹,就不會有空間浪費的情況;若是只有右子樹,那麼會造成相當大的浪費。
二叉樹演算法思路:
1、如果樹為空,則直接返回錯。
2、如果樹不為空:層序遍歷二叉樹。
3、如果一個結點左右孩子都不為空,則pop該節點,將其左右孩子入隊列。
4、如果遇到一個結點,左孩子為空,右孩子不為空,則該樹一定不是完全二叉樹。
5、如果遇到一個結點,左孩子不為空,右孩子為空;或者左右孩子都為空;則該節點之後的隊列中的結點都為葉子節點;該樹才是完全二叉樹,否則就不是完全二叉樹。
Ⅳ 順序存儲結構和鏈式存儲結構優缺點
順序存儲結構和鏈式存儲結構的區別
鏈表存儲結構的內存地址不一定是連續的,但順序存儲結構的內存地址一定是連續的;
鏈式存儲適用於在較頻繁地插入、刪除、更新元素時,而順序存儲結構適用於頻繁查詢時使用。
順序存儲結構和鏈式存儲結構的優缺點:
空間上
順序比鏈式節約空間。是因為鏈式結構每一個節點都有一個指針存儲域。
存儲操作上:
順序支持隨機存取,方便操作
插入和刪除上:
鏈式的要比順序的方便(因為插入的話順序表也很方便,問題是順序表的插入要執行更大的空間復雜度,包括一個從表頭索引以及索引後的元素後移,而鏈表是索引後,插入就完成了)
例如:當你在字典中查詢一個字母j的時候,你可以選擇兩種方式,第一,順序查詢,從第一頁依次查找直到查詢到j。第二,索引查詢,從字典的索引中,直接查出j的頁數,直接找頁數,或許是比順序查詢最快的。
Ⅳ 計算機中的順序存儲時什麼意思
日常使用中順序存儲使用不是很多,日前常用的存儲都可以通過定址來訪問任意位置的數據,但在計算機發展初期,多使用磁帶設備來存儲數據,由於磁帶設備的特殊性,隨機定址需要來回到帶,速度會受到很大影響,同時磁帶設備定址定位精度較低,因此磁帶設備一般情況下使用順序存儲方式來進行讀寫,從磁帶開頭,依次存儲數據。
Ⅵ 順序存儲結構優點
順序存儲時,相鄰數據元素的存放地址也相鄰(邏輯與物理統一);要求內存中可用存儲單元的地址必須是連續的。優點是存儲密度大(=1),存儲空間利用率高。順序表適宜於做查找這樣的靜態操作。
Ⅶ 順序存儲結構針對什麼結構順序存儲結構能存什麼順序存儲結構的特徵是什麼
順序存儲一般使用數組實現。存的當然是節點,節點是你自己定義的數據類型,特徵:隨機存取,佔用連續的存儲空間,靜態分配,存儲密度等於1等等。
Ⅷ 順序存儲方式能用於存儲什麼結構的數據
不是
順序存儲方式不僅能用於存儲線性結構,還可以用來存放非線性結構,例如完全二叉樹是屬於非線性結構,但其最佳存儲方式是順序存儲方式
Ⅸ 線性表的順序存儲與鏈式存儲的優缺點各是什麼
1.空間上
順序比鏈式節約空間。是因為鏈式結構每一個節點都有一個指針存儲域。
2.存儲操作上
順序支持隨機存取,方便操作
3.插入和刪除上
鏈式的要比順序的方便(這句話是不能這么說的,因為插入的話順序表也很方便,問題是順序表的插入要執行更大的空間復雜度,包括一個從表頭索引以及索引後的元素後移,而鏈表是索引後,插入就完成了)