我覺得現在這考試, 明顯就是在考數學, 看看這道題.
基本上就是說滿/完全二叉樹的層次和序號的關係.
假設第m個節點在k層.
那麼在k層,第乙個節點是 2^(k-1)(從1開始,如果從0開始就是2^(k-1)-1), 最後乙個元素是 2^(k-1) + (2^(k-1)-1),
也就是說2^(k-1)號 ~ 2^(k-1)+ (2^(k-1)-1) 號節點都在同一層上.
而最後乙個節點 2^(k-1)+ (2^(k-1)-1) =2^k-1 的編碼其實就是這顆樹的節點總數,
==>2^(k-1)號 ~ 2^k-1在同一層
設m=2^(k-1) ==> k=log_2_m+1
設n=2^k-1 ===> k=log_2_(n+1)
所以只能蒙一下了. ⌊ 這個符號是取整的意思. ⌊5/3⌋=1,再比如⌊10/4⌋=2
看一下某x的答案, 感覺關鍵點沒有說到. 還有一段表述寫錯了, 少了乙個括號.
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,看下面的示意圖。順序二叉樹通常只考慮完全二叉樹 第n個元素的左子節點為 2 n 1 第n個元素的右子節點為 2 n 2 第 n 個元素的父節點為 n 1 2 n 表示二叉樹中的第幾個元素 按 0 開始編號...
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列。陣列轉換成樹即是將陣列中的各個元素按照二叉樹的層次儲存起來的過程。原陣列 1,2,3,4,5,6,7 轉換為順序二叉樹如下圖所示 順序儲存二叉樹的特點 通常只考慮完全二叉樹 第n個元素的左子節點為2 n ...
順序儲存二叉樹
package com.datastructure.tree.binarytree 順序儲存二叉樹 1。順序儲存二叉樹通常只考慮完全二叉樹 2。第n個元素的左子節點為2 n 1 3。第n個元素的右子節點為2 n 2 4。第n個元素的父親節點為 n 1 2 public class sequentia...