二叉樹輸出(btout)
【問題描述】
樹的凹入表示法主要用於樹的螢幕或列印輸出,其表示的基本思想是兄弟間等長,乙個結點要不小於其子結點的長度。二叉樹也可以這樣表示,假設葉結點的長度為1,乙個非葉結點的長並等於它的左右子樹的長度之和。
一棵二叉樹的乙個結點用乙個字母表示(無重複),輸出時從根結點開始:
每行輸出若干個結點字元(相同字元的個數等於該結點長度),
如果該結點有左子樹就遞迴輸出左子樹;
如果該結點有右子樹就遞迴輸出右子樹。
假定一棵二叉樹乙個結點用乙個字元描述,現在給出先序和中序遍歷的字串,用樹的凹入表示法輸出該二叉樹。
【輸入格式】
輸入檔案btout.in共兩行,每行是由字母組成的字串(一行的每個字元都是唯一的),分別表示二叉樹的先序遍歷和中序遍歷的序列。
【輸出格式】
輸出檔案btout.out的行數等於該樹的結點數,每行的字母相同。
【輸入樣例】btout.in
abcdefg
cbdafeg
【輸出樣例】btout.out
aaaabbc
deefg
題解:建樹,與樹的先序遍歷,根據先序序列找到根,在中序序列中找到其左右子樹,遞迴建樹,統計子樹大小
#include
using namespace std;
struct nodet[400];
string ms,ps;
int tot,k=0;
void build(int &rt,int l,int r)
int m;
m=ms.find(ps[k++]);
if (m>l) build(t[rt].ls,l,m-1);
if (m>ps;
cin>>ms;
build(root,0,ms.length()-1);
pre(root);
} /*
abcdefg
cbdafeg
*/
二叉樹輸出 btout
問題描述 樹的凹入表示法主要用於樹的螢幕或列印輸出,其表示的基本思想是兄弟間等長,乙個結點要不小於其子結點的長度。二叉樹也可以這樣表示,假設葉結點的長度為1,乙個非葉結點的長並等於它的左右子樹的長度之和。一棵二叉樹的乙個結點用乙個字母表示 無重複 輸出時從根結點開始 每行輸出若干個結點字元 相同字元...
二叉樹輸出
樹的凹入表示法主要用於樹的螢幕或列印輸出,其表示的基本思想是兄弟間等長,乙個結點的長度要不小於其子結點的長度。二叉樹也可以這樣表示,假設葉結點的長度為1,乙個非葉結點的長度等於它左右子樹的長度之和。一棵二叉樹的乙個結點用乙個字母表示 無重複 輸出時從根結點開始 每行輸出若干個結點字元 相同字元的個數...
二叉樹的輸出
標頭檔案 函式的宣告 include include include define maxsize 100 typedef char elemtype typedef struct node bittree,bitnode void createbittree2 bittree t,char str...