層次遍歷二叉樹 微軟面試題

2021-05-27 20:31:42 字數 521 閱讀 4107

這也是網路流傳的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...