Swust oj 980输出利用先序遍历创建的二叉树的层次遍历序列_Loftiness的博客-程序员ITS203_swust oj980

技术标签: 980  swust oj  二叉树  数据结构习题  西南科技大学  层次遍历  

输出利用先序遍历创建的二叉树的层次遍历序列

利用先序递归遍历算法创建二叉树并输出该二叉树的层次遍历序列。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#“时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树的层次遍历序列。需要注意输入数据序列中的”#“字符和非”#"字符的序列及个数关系,这会最终决定创建的二叉树的形态。

输入

输入为接受键盘输入的由大写英文字符和"#"字符构成的一个字符串(用于创建对应的二叉树)。

输出

每个用例用一行出该用例对应的二叉树的层次遍历序列。

样例输入

A##
ABC####
AB##C##
ABCD###EF##G##H##
A##B##

样例输出

A
ABC
ABC
ABHCEDFG
A

AC代码

#include
using namespace std;
#define Maxsize 100
typedef struct node
{
char data;
struct node *lc,*rc;
}BTNode;
typedef struct
{
BTNode *da[Maxsize];
int front ,rear;
}SqQueue;//其实可以用循环队列节省空间(但是我懒)
void Creat(BTNode *&t)//先序遍历创建二叉树
{
char a;
cin>>a;
if(a==’#’)
t=NULL;
else
{
t=new BTNode;
t->data=a;
t->lc=NULL;
t->rc=NULL;
Creat(t->lc);
Creat(t->rc);
}
}
void Trav(BTNode *p)
{
SqQueue *t;
t=new SqQueue;
t->front=-1;
t->rear=-1;
t->da[++t->rear]=p;//将根节点入队列保存
while(t->rear!=t->front)//当队列不为空时一直循环
{
cout<da[++t->front]->data;
p=t->da[t->front];
if(p->lc!=NULL)
t->da[++t->rear]=p->lc;//左孩子入队列
if(p->rc!=NULL)
t->da[++t->rear]=p->rc;//右孩子入队列
}
}
int main()
{
BTNode *s;
Creat(s);
Trav(s);
return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43521060/article/details/89810490

智能推荐

iOS开发之Xcode9报错 Compiling IB documents for earlier than iOS7 is no longer supported._坤宇的博客-程序员ITS203

在我们升级到Xcode9时,最低的编译版本为iOS8,但是在使用一些SDK的时候就会报出Compiling IB documents for earlier than iOS7 is no longer supported.这句错误,这个时候我们点击错误跳转到Xib或Storyboard中随后按照截图操作,把build for 的版本更改为iOS7.1或以上错误即可解决

配置Typescript+Node环境_jcLee95的博客-程序员[email protected]/node

配置 NodeJS + Typescript 开发环境CSDN用户名:jcLee95(关于TypeScript配置文件、NodeJS安装请参考其它博文,这里不再赘述)1. 安装TypeScript使用npm:npm install -g typescript使用yarn:yarn global add typescript2.安装ts-node使用npm:npm install -D ts-node # 在你的本地项目中npm install -g

Python经典例题:跑马灯文字效应_qq_45912432的博客-程序员ITS203_python走马灯案例

Python经典例题:跑马灯文字效应跑马灯文字效应是Python比较经典的例题,编程思想是:首先输入字符串,然后对字符串进行切片,将字符串的第一位数切片,然后将它放到末尾,以此进行无限循环。**注:**写出来的这个程序是在pycharm上运行的,其中有一些小细节需要解释清楚,其他的编译器我没有尝试过,所以建议在pycharm上运行程序代码如下:import timeimport oscontent = '拼搏到无能为力,坚持到感动自己 'while True: os.s

手把手教你docker安装RabbitMQ及其Web界面_YKbsmn的博客-程序员ITS203_docker rabbitmq 界面

极简版:docker pull rabbitmq:managementdocker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management然后访问http://localhost:15672即可访问rabbitMQ的web界面,账号密码都为guest!!优化:配置docker镜像,建立配置阿里云镜像,直接起飞。阿里云镜像:https://&lt;your_code&gt;.mirror.al..

plc的复位优先SR锁存器与置位优先RS锁存器_王小小离的博客-程序员ITS203_sr置位优先和rs复位优先

plc的复位优先SR锁存器与置位优先RS锁存器如上,看过网上很多博文把SR和RS的优先位置互换,为避免产生混淆,故写此博文防止忘记。通常以最后一个字母为准。1、SR锁存器这个指令是复位优先型触发器。它有两个输入S和R,一个输出Q。用0和1表示信号的高低电平。有以下状态表 复位优先锁存器 SR SR1输出位 00保持前一状态 010 101 110复位优先锁存器 SRS文本文本文本2、RS锁存器这个指令是置位优先型触发器。它同样

随便推点

魔方游戏程序设计制作(C语言)_老花眼猫的博客-程序员ITS203_魔方程序

魔方游戏程序设计制作(C语言)大家都玩过手机的小游戏吧。我是编程爱好者,喜欢动脑筋研究一些算法,编程做出小游戏程序,很有趣很有成就感。在学习VB6编程时就编制过钻石棋和伤脑筋十二块那样的游戏,都是标准Windows图形界面的。现在有空闲时就玩手机上编译手机游戏。这里用简单的C语言编制魔方游戏,是安卓手机版图形界面的,全是用编译器绘图方法绘制的。一般的游戏图形都是方形和圆形为主,此魔方游戏图形是用伪3D的方法绘制的。此方法是用平面绘画方法画出许多菱形拼接成魔方的立体图像,给你的观感是立体的魔方。你可看

Linux: 一款比较好用的阅读器 Okular_Felaim的博客-程序员ITS203

Okular是一款比较好用的阅读器,虽然LZ最喜欢的还是阅读纸质的paper,但是打印电子书确实还是有些奢侈的,或者从网上买,有些英文的书籍还是比较贵的,所以介绍一款比较好用的PDF阅读器,就是Okular啦,当然用起来真心比较方便。安装方法 sudo apt-get install okular调节成豆沙色的护眼模式打开okular,Settings-&gt;Configur...

Java Object转JSONObject_普通网友的博客-程序员ITS203

代码】Java Object转JSONObject。_1671465600

apktool.bat 无法下载的解决方案_SmallMartin的博客-程序员ITS203_apktool.bat

创建一个apktool.bat的空文件把下面的代码复制进去@echo offsetlocalset BASENAME=apktool_chcp 65001 2&gt;nul &gt;nulset java_exe=java.exeif defined JAVA_HOME (set java_exe="%JAVA_HOME%\bin\java.exe")rem Find the highest version .jar available in the same dire

C语言总结_数组与函数传参练习题_函数参数传递练习_DS小龙哥的博客-程序员ITS203

字符串标准处理函数介绍(string.h)、指针和数组当做函数形参,指针定义、函数返回指针、void类型定义指针、类型强制转换、常量声明、extern外边引用声明关键字。

DBA_Oracle DBA常用表_oracle dba表_stone_bk的博客-程序员ITS203

一、与权限相关的字典ALL_COL_PRIVS表示列上的授权,用户和PUBLIC是被授予者ALL_COL_PRIVS_MADE表示列上的授权,用户是属主和被授予者ALL_COL_RECD表示列上的授权,用户和PUBLIC是被授予者ALL_TAB_PRIVS表示对象上的授权,用户是PUBLIC或被授予者或用户是属主ALL_TAB_PRIVS_MADE表示对象上的权限,用户是属主或授予者ALL_TAB_PRIVS_RECD表示对象上的权限,用户是PUBLIC或被授予者DBA_COL__1671465600

推荐文章

热门文章

相关标签