天勤模擬賽1 二叉樹問題

2021-06-20 21:01:57 字數 788 閱讀 1820

現給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求你計算該二叉樹的高度。

輸入包含多組測試資料,每組輸入首先給出正整數n(<=50),為樹中結點總數。下面2行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母(區別大小寫)的字串。

對於每組輸入,輸出乙個整數,即該二叉樹的高度。

9abdfghiec

fdhgibeac

7abcdefg

gfedcba57

#include #include char pre[60], in[60];

typedef struct tree

;tree tree[60];

int loc = 0, n, max;

tree *creat()

tree *build(int p1, int p2, int i1, int i2)

if(i != i1)

t->lchild = build(p1+1, i - i1 + p1 , i1, i-1);

if(i != i2)

t->rchild = build(p2 + 1 + i - i2, p2, i + 1, i2);

return t;

}void preorder(tree *t, int level)

preorder(t->lchild, level + 1);

preorder(t->rchild, level + 1);

}int main()

return 0;

}

二叉樹寬度 非遞迴 天勤

這裡認為書上求max那段for迴圈對j的賦值是錯誤的。訂正一下 求二叉樹的寬度函式 typedef struct st int maxnode btnode b if q rchild null for i 1 i lno i if n max max n return max else retur...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

二叉樹問題 二叉樹層級列印

給定二叉樹的頭結點,按層級列印二叉樹節點值。從上到下按層遍歷,應該是先遍歷到的節點先輸出。因此用佇列作為輔助結構來解此題。層級遍歷中關鍵點要知道什麼時候換層。用兩個變數last 和nlast,分別指向當前層的最右邊和下一層的最右邊節點。當當前層的最右邊節點從佇列中輸出時,表示這一層遍歷完畢了,此時使...