這也是網路流傳的microsoft的面試題目之一:「怎樣從頂部開始逐層列印二叉樹結點資料?請程式設計」。這個題目實際上很簡單,採用佇列的方式很容易可以實現:
void hiberarchyretriveatree(treenode root,void (* visit)(treenode))
queuetree;
treenode tmp = null;
tree.push(root);
while (!tree.empty())
tmp = tree.front();
tree.pop();
(*visit)(tmp);
if (tmp->_l != null)
tree.push(tmp->_l);
if (tmp->_r != null)
tree.push(tmp->_r);
這裡用到節點訪問的策略,簡單可以實現為:
void visit(treenode node)
cout<_value<<" ";
面試題 分層遍歷二叉樹
程式設計之美上的題目。問題1 給定一棵二叉樹,要求按分層遍歷該二叉樹,即從上到下按層次訪問該二叉樹 每一行將單輸出一行 每一層要求訪問的順序為從左向右,並將節點依次編號。問題2 寫乙個函式,列印二叉樹中某層次的節點 從左向右 其中根結點為第1層。include iostream include qu...
二叉樹面試題
1.求二叉樹節點個數 可以使用遞迴解決。將問題分解為求根節點 左子樹的節點數 右節點的節點數。實現 public size t size private size t size node root 2.求頁節點個數 頁節點 左右子樹都為空的節點被稱為頁節點,使用遞迴遍歷,當碰到乙個左右子樹為空的節點...
面試題 二叉樹
面試題 二叉樹 1.重建二叉樹 前序 中序 treenode reconstructbinarytree vector pre,vector vin treenode root new treenode pre 0 int pos 0 for pos pre left,vin left,pre ri...