題目描述
編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹(以指標方式儲存)。例如如下的先序遍歷字串:
abc##de#g##f###其中「#」表示的是空格,空格字元代表空樹。建立起此二叉樹以後,再對二叉樹進行中序遍歷,輸出遍歷結
輸入
輸入包括1行字串,長度不超過100。
輸出
可能有多組測試資料,對於每組資料,輸出將輸入字串建立二叉樹後中序遍歷的序列,每個字元後面都有乙個空格。每個輸出結果佔一行。
樣例輸入
a#b#cdef#####
a##
樣例輸出
a b f e d c
a
#include
#include
const
int maxn =
100;
struct node
;char pre[maxn]
;//先序陣列
int ans,len;
//ans當前指向先序序列位置,len序列長度
//建立二叉樹
node *
create()
if(ans == len)
//序列結束
return
null
; node *root =
new node;
//建立新結點
root-
>data = pre[ans++];
root-
>lchild =
create()
;//建立左子樹
root-
>rchild =
create()
;//建立右子樹
return root;
}//中序遍歷
void
inorder
(node *root)
intmain
(int argc,
char
** ar**)
return0;
}
根據二叉樹的先序遍歷和中序遍歷建立二叉樹
根據二叉樹的先序遍歷和中序遍歷建立二叉樹 rebacktree 根據二叉樹的先序遍歷和中序遍歷建立二叉樹。rebacktree1 根據二叉樹的後序序遍歷和中序遍歷建立二叉樹。include stdio.h include stdlib.h typedef struct node node,nodep...
先序構建二叉樹及先序遍歷二叉樹
先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...
先序構建二叉樹及先序遍歷二叉樹
先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...