求二叉樹的深度

2021-07-16 09:53:15 字數 845 閱讀 2753

time limit: 1000ms memory limit: 65536k

已知一顆二叉樹的中序遍歷序列和後序遍歷序列,求二叉樹的深度。

輸入資料有多組,輸入t

組資料。每組資料報括兩個長度小於50的字串,第乙個字串表示二叉樹的中序遍歷,第二個表示二叉樹的後序遍歷。

輸出二叉樹的深度。

2

dbgeafc

dgebfca

lnixu

linux

4

3

注意,此題類似前中序列還原的,都要在中序列中查詢,分離,然後一直遞迴,因此前後序列不能還原二叉樹,中後和前中的區別就是後序列根節點在後面
#include #include #include using namespace std;

typedef struct node

node, *tree;

tree yuancreat(char *s,char *r,int n);

int deep(tree t);

int main()

int ln=p-s;//遍歷到中間根節點,左邊的數值的個數

t->lchild=yuancreat(s,r,ln);//s-->r,為左子樹

t->rchild=yuancreat(s+ln+1,p+1,n-ln-1);//整體右子樹s+ln+1-->p+1

return t;

}int deep(tree t)

if(ld>rd)

return ld+1;

else

return rd+1;

}

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

採用先序法建立一棵二叉樹,設計求該二叉樹的深度,二叉樹的資料域型別為字元型,擴充套件二叉樹的葉子結點用 表示,要求可以求多棵二叉樹的深度,當二叉樹的深度為0時程式結束。輸入描述 迴圈輸入多棵擴充套件二叉樹的先序遍歷序列,每棵樹佔一行,以回車結束,每棵二叉樹中結點之間以空格隔開輸出描述 輸出各二叉樹的...

求二叉樹的深度

題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉子結點一次經過的結點形成樹的一條路徑,最長路徑的長度為樹的深度。根節點的深度為1。解體思路 如果根節點為空,則深度為0,返回0,遞迴的出口 如果根節點不為空,那麼深度至少為1,然後我們求他們左右子樹的深度,比較左右子樹深度值,返回較大的那乙個 ...

求二叉樹的深度

已知一顆二叉樹的中序遍歷序列和後序遍歷序列,求二叉樹的深度。輸入資料有多組,輸入t 代表有t 組資料。每組資料報括兩個長度小於50 的字串,第乙個字串表示二叉樹的中序遍歷,第二個表示二叉樹的後序遍歷。輸出二叉樹的深度。2 dbgeafc dgebfca lnixu linux 4 3 include...