二叉樹(三)求二叉樹的深度

2021-09-02 14:02:09 字數 1652 閱讀 2179

採用先序法建立一棵二叉樹,設計求該二叉樹的深度,二叉樹的資料域型別為字元型,擴充套件二叉樹的葉子結點用『#』表示,要求可以求多棵二叉樹的深度,當二叉樹的深度為0時程式結束。

輸入描述:

迴圈輸入多棵擴充套件二叉樹的先序遍歷序列,每棵樹佔一行,以回車結束,每棵二叉樹中結點之間以空格隔開
輸出描述:

輸出各二叉樹的深度,每次輸出後面都換行
輸入樣例:

a b # # c d # e # f # # g h # i k # # # #

a b d h # # i # # e j # # k # # c f l # # m # # g n # # o # #

#

輸出樣例:

6

40

#includeusing namespace std;

#includeint x;

struct node

;

class bitree

~bitree()

void preorder()

void inorder()

void postorder()

int treeheight1()

void leverorder();

private:

node *root;

node *create(node *bt);

void release(node *bt);

void preorder(node *bt);

void inorder(node *bt);

void postorder(node *bt);

void printparent(node *bt);

void print(node *bt);

void print_family(node *bt);

int treeheight1(node *bt)

if(root==null)

int leftheight = treeheight1(bt->lchild)+1;

int rightheight = treeheight1(bt->rchild)+1;

x=leftheight>rightheight ? leftheight :rightheight;

return leftheight>rightheight ? leftheight :rightheight;

}};

node*bitree::create(node *bt)

return bt;

}

void bitree::release(node *bt)

} void bitree::preorder(node *bt)

} void bitree::inorder(node *bt)

} void bitree::postorder(node *bt)

} void bitree::leverorder()

} int main()

return 0;

}

二叉樹之 二叉樹深度

二叉樹深度 獲取最大深度 public static int getmaxdepth treenode root 二叉樹寬度 使用佇列,層次遍歷二叉樹。在上一層遍歷完成後,下一層的所有節點已經放到佇列中,此時佇列中的元素個數就是下一層的寬度。以此類推,依次遍歷下一層即可求出二叉樹的最大寬度 獲取最大...

二叉樹的深度 二叉樹的深度

題目描述輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。及測試用例 單步除錯檢視過程 public class solution19 拿到左子樹的最大深度 int leftdep treedepth root.left 拿到右子...

二叉樹的深度 二叉樹的深度 二叉樹最大寬度

題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...