C++树的建立和遍历
2024-08-27 17:18:40
#include<iostream.h>
typedef char TElemtype;
typedef struct Btree
{
TElemtype data;
struct Btree *Lchild,*Rchild;
}BTnode,*btree; void create_btree(btree &root)
{
int i,j;
btree s,p[];
cin>>i;
while(i!=)
{
s=new BTnode;
cin>>s->data;
s->Lchild=s->Rchild=NULL;
p[i]=s;
if(i==)
root=s;
else
{
j=i/;
if(i%==)
p[j]->Lchild=s;
else
p[j]->Rchild=s;
}
cin>>i;
}
} void create_btree2(btree &root,char str[]) {
char ch;
static int i=;
ch=str[i++];
if(ch=='.')
{
root=NULL;
}
else
{
root=new BTnode;
root->data=ch;
create_btree2(root->Lchild,str);
create_btree2(root->Rchild,str);
}
} void preorder(btree root)
{
if(root)
{
cout<<root->data;
preorder(root->Lchild);
preorder(root->Rchild); }
} void inorder(btree root)
{
if(root)
{
inorder(root->Lchild);
cout<<root->data; inorder(root->Lchild); } } void postorder(btree root)
{
if(root)
{
postorder(root->Lchild);
postorder(root->Lchild);
cout<<root->data;
}
}
void main()
{
btree root;
//create_btree(root);
char str[];
cin>>str;
create_btree2(root,str);
preorder(root); }
最新文章
- 详解Java中ArrayList、Vector、LinkedList三者的异同点(转)
- java:经典消费生成者
- 第四章 面向对象与IO操作
- css&;js实现顶部banner滚动提示效果
- Java一些常见的出错异常处理
- CentOS6.5编译安装最新MySQL 5.7.11
- express框架介绍
- JAVA_多线程_单例模式
- get和post与服务端的交互方式
- [TJOI 2016&;HEOI 2016]排序
- ThinkPHP 初探
- pymysql安装
- 【Android Studio安装部署系列】二十二、Android studio自动生成set、get方法
- Exp5 MSF基础应用 20164302 王一帆
- spark_to_es
- os x &;&; linux 文件传输基础命令
- 处理数据库 Ora-00845: memory_traget not supported on this system 的错误
- 通过写一个Demo展示C#中多种常用的集合排序方法
- poj1741 树上的分治
- 开机出现grub界面(待尝试)
热门文章
- 【CCPC-Wannafly Winter Camp Day4 (Div1) C】最小边覆盖(简单题)
- python3中使用HTMLTestRunner.py报ImportError: No module named &#39;StringIO&#39;的解决办法
- 使用ssl模块配置同时支持http和https并存
- 一步步做程序优化-讲一个用于OpenACC优化的程序(转载)
- 第44章 	MPU6050传感器—姿态检测—零死角玩转STM32-F429系列
- input的placeholder的颜色、字号、边距设置
- Angular项目下载启动
- easyui基于 layui.laydate日期扩展组件
- springboot整合mybatis笔记
- NuGet管理和还原程序包