二叉樹 二叉樹遍歷 根據先序建立二叉樹

2021-10-07 08:35:40 字數 1139 閱讀 5939

題目描述

編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹(以指標方式儲存)。例如如下的先序遍歷字串:

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 ...