time limit: 1000ms memory limit: 65536k 有疑問?點這裡^_^
已知乙個按先序序列輸入的字串行,如abc,,de,g,,f,,,(其中逗號表示空節點)。請建立二叉樹並按中序和後序方式遍歷二叉樹,最後求出葉子節點個數和二叉樹深度。
輸入乙個長度小於50個字元的字串。
輸出共有4行:
第1行輸出中序遍歷序列;
第2行輸出後序遍歷序列;
第3行輸出葉子節點個數;
第4行輸出二叉樹深度。
abc,,de,g,,f,,,
cbegdfa
cgefdba35
做完二叉排序樹感囧這道題的建樹更複雜。#include#include#include#includeusing namespace std;
typedef struct node
tree;
int s,z;
tree *creat(node *rt)
return rt;
}void pre(node *rt)
}void post(node *rt)
tree *yz(node *rt)//遍歷查詢葉子數比較簡單在不是空根的前提,if(兩兒子為空)s++ else 遞迴繼續尋找
}int de(node *rt)
由於帶有返回值故,用return 。。;
if(!rt)
return 0;
dl=de(rt->l);//遞迴判斷深度
dr=de(rt->r);
if(dl>dr)
return dl+1;
else
return dr+1;
}int main()
{ node *rt;
z=1;
s=0;
rt=new node;
rt=creat(rt);//為了方便以後的遍歷查詢,應返回根節點。
pre(rt);
cout<
資料結構實驗之二叉樹二 遍歷二叉樹
time limit 1000ms memory limit 65536k 已知二叉樹的乙個按先序遍歷輸入的字串行,如abc,de,g,f,其中,表示空結點 請建立二叉樹並按中序和後序的方式遍歷該二叉樹。連續輸入多組資料,每組資料輸入乙個長度小於50個字元的字串。每組輸入資料對應輸出2行 第1行輸出...
資料結構實驗之二叉樹二 遍歷二叉樹
剛開始學樹,不是很明白遞迴的過程,後來才發現了乙個比較好理解遞迴的方法 你不需要把所有遞迴的過程都呈現在腦海裡,你只需要畫出遞迴的其中乙個過程就可以了,這乙個過程的遞迴如果正確了,那麼下面的遞迴過程是百分之百正確的,當然還有乙個點就是要明確遞迴的終點,也就是返回條件,這一點很重要,如果這個遞迴的外部...
資料結構實驗之二叉樹二 遍歷二叉樹
資料結構實驗之二叉樹二 遍歷二叉樹 time limit 1000ms memory limit 65536k 已知二叉樹的乙個按先序遍歷輸入的字串行,如abc,de,g,f,其中,表示空結點 請建立二叉樹並按中序和後序的方式遍歷該二叉樹。連續輸入多組資料,每組資料輸入乙個長度小於50個字元的字串。...