為什麼二叉樹的根結點常常是指向指標的指標呢?如果根結點單單只是指標會怎麼樣?

時間 2021-06-06 02:45:20

1樓:Bruse.lee

因為在創造一顆樹時,在申請根結點空間時,位址可能會發生變化,而這種變化是無法判斷的,是系統自動發生的,單個指標就無法找到變化後的位址,所以 ,用指標的指標,找到變化後的位址。當然如果你在創造一顆樹前,就已經初始化分配了根結點的空間,那就不用指標的指標,直接用乙個指標就行了。

這有乙個二叉樹的文章

Bruse.lee:資料結構——二叉樹

2樓:王旭競

一種C語言式的標準做法。

節點需要兩重指標,一重是節點本身動態更改資料的需要,另一重是分配與操作堆記憶體資料的需要。

至於是不是一定要做成指標的指標形式,取決於節點資料是直接手動管理記憶體,這種可以指標的指標,效率最高。還是封裝為某個結構的內部成員變數,開銷略大一點,就只是指標的形式,好控制,使用方便。用智慧型指標的話,實際也是屬於後者。

3樓:

遇到插入節點時,當樹為空時,二級指標比較合適,例如void insert(Node **root, int v) {if (*root == nullptr) {//這裡還應該有對root的判空

*root = new Node(v);

return;

為什麼說「滿二叉樹也是完全二叉樹」?

一名 1 先明確完全二叉樹的概念。先上圖!完全二叉樹分為樓主所說的 圖1就是了 還有一種完全二叉樹是圖2。圖2也是完全二叉樹!圖2也是完全二叉樹!圖2也是完全二叉樹!概念 完全二叉樹分為兩種,1 最後一層沒有滿,那麼最後一層的節點都得在左邊。2 最後一層滿了,那就得全滿才行,圖2。完全二叉樹就這麼個...

如何求二叉樹的直徑的路徑?

二叉樹擴充套件為樹 即樹的直徑 其實是很經典的演算法。常見有兩種寫法 1樹形dp 2貪心。列印路徑的話,與普通dp列印路徑一樣 我習慣是求出最優值再根據dp的決策遞迴列印 下面的截圖來自紫書p281。 rsa 二叉樹上每條路徑都可以分成兩段,前半段深度遞減,後半段深度遞增。於是我們可以列舉路徑上深度...

完全二叉樹為什麼最適合順序儲存結構?

花露水和暖壺 先說明一下,只有完全二叉樹才能順序儲存,或者說順序儲存只適合於完全二叉樹,理由如下 一般情況下,如果將樹的結點從上到下,每一層從左到右從1開始挨個編號,那麼結點 i 的左孩子就是2i,右孩子就是2i 1,將這個規律反映到順序儲存中,我們可以根據陣列的下標i也能找到左孩子 2i 和右孩子...