你答過的用順序和二叉連結串列作儲存結構

2025-02-09 06:54:46 字數 1268 閱讀 8439

簡述順序表和連結串列儲存方式的特點

1樓:it男小何

1、基於儲存的考慮。

順序表的儲存空間是靜態分配的,在程式執行之前必須明確規定它的儲存規模,事先對「maxsize」要有合適的設定,。如果對線性表的長度或儲存規模難以估計時,不宜採用順序閉餘困表;連結串列不用事先估計儲存規模,但連結串列的儲存密度較低。

2、基於操作的考慮。

在順序表中按序號訪問元素的時間效能為o(1),而連結串列中按序號訪問的時間效能是o(n),所以如果經常做的運算是按序號訪問資料元素,顯然順序表優於連結串列;在連結串列中作插入、刪除,也要找插入位置,但是比較操作,顯然連結串列較優。

3、基於開發的語言考慮。

順序表容易實現,任何高階語言中都有陣列型別,連結串列的操作是基於指標的,有些語言不支援指標型別,並轎念且相對指標來講順序表較簡毀判單。總之,兩種儲存結構各有長短,選擇那一種儲存方式應由實際問題決定。通常「較穩定」的線性表選擇順序儲存,而頻繁做插入刪除的即動態性較強的線性表宜選擇鏈式儲存。

怎麼把二叉樹的鏈式儲存結構轉化為順序儲存結構

2樓:曉凡

二叉樹的鏈式儲存是指:兩個兒子結點分別用指標指向。而儲存結構值的是:

假設該結點在陣列中的位置為 i ,則它的左兒子的位置為 2i ,右兒子為 2i + 1. (i 從1開始)

所以你只要建立乙個陣列,從鏈式儲存的根節點開始,用中序遍歷遍歷樹,按中序遍歷的順序儲存在陣列中。即可完成順序儲存結構的轉化。

相關的遍歷你可以檢視相關資料,中序遍歷即訪問順序為左兒子-根-右兒子的順序訪問。

希望對你有所幫助。

採用順序儲存方法和鏈式儲存方法分別畫出圖6.1所示二叉樹的儲存結構。【**等】

3樓:墨汁諾

線性是線性,順序是順序,線性是邏輯結構,順序是儲存結構,兩者不是乙個概念。線性是指乙個節點只有乙個子節點,而樹,或二叉樹乙個節點後有多個子節點,且子節點不能相互聯絡。

順序儲存可能會浪費空間(在非完全二叉樹的時候),但是讀取某個指定的節點的時候效率比較高。

鏈式儲存相對二叉樹比較大的時候浪費空間較少,但是讀取某個指定節點的時候效率偏低。

二叉樹的順序儲存,尋找後代節點和祖先節點都非常方便,但對於普通的二叉樹,順序儲存浪費大量的儲存空間,同樣也不利於節點的插入和刪除。因此順序儲存一般用於儲存完全二叉樹。

鏈式儲存相對順序儲存節省儲存空間,插入刪除節點時只需修改指標,但回尋找指定節點時很不方便。不過普通答的二叉樹一般是用鏈式儲存結構。

請問平衡二叉樹和二叉排序樹的關係

平衡二叉樹和二叉排序樹沒有關係,他們的定義都不相同。由於平衡二叉樹的設計是為了改進二叉排序樹的效能,所以他的插入和刪除按排序樹的來 討論 請問 平衡二叉樹和二叉排序樹的關係 看你的插入演算法是怎樣的了,平衡二叉樹未必是二叉排序樹,比如二路堆就可以實現為平衡二叉樹,且非二叉排序樹。平衡二叉樹和二叉排序...

怎麼把二叉樹遍歷用結構的形式輸出

include include include include typedef char elemtype char str 256 存放字元型二叉樹 int sk 1 二叉樹 二叉 連結串列的儲存結構 typedef struct bitnode bitree 鏈棧 佇列 型別 typedef s...

求助二叉樹的高度和深度有什麼區別

不一樣,高度是指節點到樹葉 沒有子節點的節點 的距離 深度是節點到根的距離。沒有區別,叫法不一樣而已 求教,樹的二叉樹的高度與深度一樣嗎?引自考研大綱解析38頁 樹的深度是從根節點開始 其深度為1 自頂向下逐層累加的,而高度是從葉節點開始 其高度為1 自底向上逐層累加的。雖然樹的深度和高度一樣,但是...