日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二叉树输出(凹入表示法)

發布時間:2023/12/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二叉树输出(凹入表示法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


二叉樹輸出(凹入表示法)

題目描述

1598: 二叉樹輸出

時間限制:1 Sec??內存限制: 128 MB
提交:8??解決: 8
[提交][狀態][討論版]

題目描述

樹的凹入表示法主要用于樹的屏幕或打印輸出,其表示的基本思想是兄弟間等長,一個結點要不小于其子結點的長度。二叉樹也可以這樣表示,假設葉結點的長度為1,一個非葉結點 的長并等于它的左右子樹的長度之和。
一棵二叉樹的一個結點用一個字母表示(無重復),輸出時從根結點開始:?
每行輸出若干個結點字符(相同字符的個數等于該結點長度)
如果該結點有左子樹就遞歸輸出左子樹;?
如果該結點有右子樹就遞歸輸出右子樹。
假定一棵二叉樹一個結點用一個字符描述,現在給出先序和中序遍歷的字符串,用樹的凹入表示法輸出該二叉樹。

輸入

輸入共兩行,每行是由字母組成的字符串(一行的每個字符都是唯一的) 分別表示二叉樹的先序遍歷和中序遍歷的序列。

輸出

輸出的行數等于該樹的結點數,每行的字母相同。

樣例輸入

ABCDEFG CBDAFEG

樣例輸出

AAAA BB C D EE F G

提示

來源

信息學奧賽一本通

[提交][狀態][討論版]

?代碼如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

#include<cstdio>

#include<cstring>

#include<cmath>

using namespace std;

char chuan1[1010],chuan2[1010]

int n;

struct node{

?char ch;

?int data;

?int xian,rightchild,t;

}node[101];

void creat(int xianxushou,int xianxumo,int zhongxushou,int zhongxumo,int x){

????int temp,k=0,i,temp2,temp3;

????for(i=1;i<=n;i++) if(chuan2[i]==chuan1[xianxushou]) temp=i;

????node[xianxushou].ch=chuan1[xianxushou];

????node[xianxushou].xian=x;

????if(temp==zhongxumo&&temp==zhongxushou) node[xianxushou].t=1;

????else node[xianxushou].t=0;

if(temp>zhongxushou)

creat(xianxushou+1,xianxushou+temp-zhongxushou,zhongxushou,temp-1,xianxushou);

if(temp<zhongxumo)?

creat(xianxushou+temp-zhongxushou+1,xianxumo,temp+1,zhongxumo,xianxushou);

}//看下面題解

int main(){

????int i;

????scanf("%s",chuan1+1);

????scanf("%s",chuan2+1);

????n=strlen(chuan1+1);

????creat(1,n,1,n,0);

????for(i=n;i>=1;i--) if(node[i].xian>=0) node[node[i].xian].t+=node[i].t;

????for(i=1;i<=n;i++) {

????????for(int j=1;j<=node[i].t;j++) printf("%c",node[i].ch);

????????printf("\n");

????}

}

?

?

?

小小題解——關于先序、中序簡述問題(以樣例為例)

A

B

C

D

E

F

G

?

?

?

先序

C

B

D

A

F

E

C

?

?

?

中序?????????????????? ????????????????temp

Creat(先序首,先序末,中序首,中序末)

首先,易得A為樹根,那么在中序中查詢可知temp=4

因為中序的性質,所以A的左子樹有三個,右子樹有四個

那么我們返回先序序列,有先序的性質易得 先序【2-4】為左子樹 先序【5-7】為右子樹

每個子樹的第一個一定是該子樹的根,然后又返回中序隊列查詢

最后可抽象出creat函數

creat(int xianxushou,int xianxumo,int zhongxushou,int zhongxumo,int x)

?

在先序隊列xianxushou-xianxumo和中序隊列zhongxushou-zhongxumo中進行查找

總結

以上是生活随笔為你收集整理的二叉树输出(凹入表示法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www黄色| 国产福利在线看 | 欧美激情电影一区二区 | 欧美久久久久久久久久 | 天天插天天干天天操 | 91精品综合久久久久久五月天 | 毛片网页 | av小说免费在线观看 | 综合人人 | 天堂在线www| 日本国产在线视频 | 伊人久久爱 | 亚洲不卡在线观看 | 一区二区国产精品精华液 | 国产精品888| 日韩欧美国产高清91 | www.夜夜操| 国产人妖一区二区 | 亚洲av综合色区无码另类小说 | 成年人视频在线看 | 日本免费在线视频 | 青青草国产在线观看 | 天天操天天插天天射 | 在线视频啪 | 在线观看成年人网站 | 久久网址 | 久久五月婷 | 久插网| 亚洲无码精品一区二区三区 | 精品国产96亚洲一区二区三区 | 日韩成人免费 | 91精品国产乱码久久久张津瑜 | 日韩在线中文 | 亚洲经典在线观看 | 黄色一级生活片 | 原创少妇半推半就88av | 97伊人网 | 欧美一级免费观看 | 欧美一级高清片 | 九七久久 | 女人的天堂av | 高h捆绑拘束调教小说 | 亚洲综合激情五月久久 | 黄色天天影视 | 成人欧美一区二区三区在线观看 | 精品国产乱码久久久久久图片 | 国产在线拍揄自揄拍无码 | 久热综合 | 顶级尤物极品女神福利视频 | 两个人做羞羞的视频 | 日韩精品视频免费在线观看 | 国产精品1234 | 性欧美极品另类 | 欧美日韩免费做爰视频 | 亚洲精品乱码久久久久久蜜桃91 | 花房姑娘免费观看全集 | 免费成人美女在线观看. | 久久久久久免费精品 | 欧美综合激情网 | 国产精品久久久久久久久久久久 | 色屁屁一区二区三区 | 99riav国产精品 | 精品久久久久久久久久久国产字幕 | 国产aaa大片| 青青草在线观看视频 | jizz自拍| 国产口爆吞精一区二区 | 女人扒开屁股让男人桶 | 欧美精品中文 | 久久国产精品网站 | 69性视频 | 天天射天天色天天干 | 国产九色在线播放九色 | 黄色三级三级 | 色四月婷婷 | 亚洲欧美精品一区二区 | 波多野吉衣一区 | 色婷婷丁香 | 二十四小时在线更新观看 | 成人免费看黄 | 久久r视频 | 乱色欧美| 亚洲第一狼人区 | 麻豆影视在线免费观看 | 国产精品自拍一区 | 人妖av在线| 少妇25p | 男人天堂手机在线 | 久操国产在线 | 国产综合激情 | 亚洲成人精品视频 | 久久久久久久国产视频 | 国产一级一级片 | 亚洲精品一线 | 11孩岁女毛片 | 国产一区视频在线观看免费 | 国产婷婷一区二区三区 | 麻豆免费网站 | 久久在线视频 |