問題描述:
假設二叉樹的元素為字元,採用二叉鏈式儲存。請編寫演算法完成:
(1)已知二叉樹的中序和後序遍歷序列,建立二叉樹;
(2)實現二叉樹的分層輸出;
輸入有三行:
第一行,乙個整數n,是二叉樹中的元素(結點)個數;
第二行,二叉樹的中序遍歷序列
第三行,二叉樹的後序遍歷序列
輸出:如果二叉樹為空,則輸出「binary tree is empty!」
如果二叉樹不空,則二叉樹有幾層則輸出幾行:
level 1:
level 2:…輸入
9
hbdfaekcg
hdfbkgcea
輸出
level 1
:alevel 2
:belevel 3
:hfc
level 4
:dkg
#include
#include
#include
#include
using
namespace std;
const
int maxsize=
105;
typedef
struct node//結點結構體
node;
class
queue
//佇列
void
push
(node*x)
void
pop(
) node*
front()
node*
back()
intsize()
bool
empty()
bool
full()
};queue q;
class
bintree
//二叉樹類
;node*bintree::
in_post_create
(int n,string in,string post)
int bintree::
get_height
(node*subtree)
void bintree::
bfsorder
(node*subtree,
int height)
if(cur-
>rightchild!=
null)if
(next==cur&&i<=height-1)
q.pop();
}}intmain()
return0;
}
資料結構與演算法實驗 附加實驗 二叉樹的建立和輸出
問題描述 假設二叉樹的元素為字元,採用二叉鏈式儲存。請編寫演算法完成 1 已知二叉樹的中序和後序遍歷序列,建立二叉樹 2 實現二叉樹的分層輸出 輸入有三行 第一行,乙個整數n,是二叉樹中的元素 結點 個數 第二行,二叉樹的中序遍歷序列 第三行,二叉樹的後序遍歷序列 輸出 如果二叉樹為空,則輸出 bi...
資料結構和演算法 二叉樹建立和遞迴遍歷
完全二叉樹的建立以及遍歷 遞迴 include include 定義資料型別 typedef int datatype t 定義結構體 typedef struct nodebitree t 建立乙個二叉樹 n表示結點總數,i表示根結點 bitree t bitree create int n,da...
資料結構 線索二叉樹的建立和遍歷
include include include using namespace std define num 100 define busy 0 define rest 1 pragma warning disable 4996 typedef struct node tnode,tnode voi...