二叉樹輸出 btout

2022-10-02 15:09:17 字數 996 閱讀 8319

二叉樹輸出(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...