HNUST-OJ-1803二叉树遍历1
原题不贴了,直接上代码
void CreateBiTree(BiTree &T)
{//按先序次序输入二叉树中结点的值(一个字符),创建二叉链表表示的二叉树TTElemType ch;//此处和教材的不同是,要处理多组数据,输入ch如果遇到EOF,应该结束程序//所以main函数用while(1)if(!(cin >> ch)) exit(0);/****在此下面完成代码***************/if(ch=='#')T=NULL;//依据题意为"#"代表为空树直接让这个节点为NULLelse//不是空树{T=new BiTNode;//让T指向一个空间储存数据T->data=ch;CreateBiTree(T->lchild);//先序遍历要求先根后左右子树,已经扫了根,则往左扫CreateBiTree(T->rchild);//扫完左树,接着扫右树}/***********************************/
} //CreateBiTree//用算法5.1 中序遍历的递归算法
void InOrderTraverse(BiTree T)
{//中序遍历二叉树T的递归算法/****在此下面完成代码***************/if(T){InOrderTraverse(T->lchild);//中序遍历要求先扫左树再扫根接着扫右树cout<<T->data<<" ";InOrderTraverse(T->rchild);}/***********************************/
}void DestroyBitree(BiTree& T)
{/****在此下面完成代码***************/if(T){if(T->lchild)DestroyBitree(T->lchild);if(T->rchild)DestroyBitree(T->rchild);free(T);T=NULL;}/***********************************/
}
//跳出本题框架的的二叉树遍历,string版 #include<iostream> #include<algorithm> #include<map> using namespace std; typedef long long ll; const int mod=1e9+7; const int MAX=1e6+10; string a; struct tree {char data;tree* l,* r;}; int ji; void built(tree* &root) {if(ji==a.size())return;char x=a[ji++];if(x=='#')root=NULL;else{root=new tree;root->data=x;built(root->l);built(root->r);}} void zhongxv(tree *root) {if(root){zhongxv(root->l);cout<<root->data<<" ";zhongxv(root->r);}}int main() {while(cin>>a){ji=0;tree *root;built(root);zhongxv(root);cout<<endl;} }
先去了解下什么是三序分别是什么再来做
HNUST-OJ-1803二叉树遍历1相关推荐
- 九度oj 题目1078:二叉树遍历
题目1078:二叉树遍历 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5326 解决:3174 题目描述: 二叉树的前序.中序.后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历 ...
- python实现二叉树遍历(前序遍历、中序遍历、后序遍历)
python实现二叉树遍历(前序遍历.中序遍历.后序遍历) 在计算机科学中,二叉树是一种树数据结构,其中每个节点最多有两个子节点,称为左子节点和右子节点.使用集合理论概念的递归定义是(非空)二叉树是元 ...
- 数据结构之二叉树(遍历、建立、深度)
数据结构之二叉树(遍历.建立.深度) 1.二叉树的深度遍历 二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树的所有结点,使得每个结点被访问一次且仅被访问一次. 对于二叉树的深度遍历,有前序遍历 ...
- C#二叉树遍历算法实现浅析
C#算法实现了二叉树的定义,怎么构造一颗已知的二叉树,用几种常规的算法(先序,中序,后序,层次)进行C#二叉树遍历.希望能给有需要人带来帮助,也希望能得到大家的指点.有关C#数据结构的书在书店里找到, ...
- 【关于封装的那些事】 缺失封装 【关于封装的那些事】 泄露的封装 【关于封装的那些事】 不充分的封装 【图解数据结构】二叉查找树 【图解数据结构】 二叉树遍历...
[关于封装的那些事] 缺失封装 目录 - 缺失封装 为什么不能缺失封装? 缺失封装潜在的原因 未意识到关注点会不断变化 混合关注点 幼稚的设计决策 示例分析一 示例分析二 总结 缺失封装 没有将实现变 ...
- BinaryTreeTraversal(二叉树遍历)
二叉树遍历 遍历命名 根据访问结点操作发生位置命名: ① NLR:前序遍历(Preorder Traversal 亦称(先序遍历)) --访问根结点的操作发生在遍历其左右子树之前. ② LNR:中序遍 ...
- l2-004 这是二叉搜索树吗?_LeetCode 例题精讲 | 11 二叉树转化为链表:二叉树遍历中的相邻结点...
本期例题: LeetCode 98. Validate Binary Search Tree 验证二叉搜索树(Medium) LeetCode 426. Convert Binary Tree to ...
- 数据结构源码笔记(C语言):二叉树遍历
//二叉树遍历 #include<stdio.h> #include<malloc.h> #include<malloc.h> #define MaxSize 10 ...
- 第九周项目实践3 利用二叉树遍历思想解决问题
*Copyright (c)2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: *作 者:邵雪源 *完成日期:2017年11月2日 *版 本 号:v1.0 ...
- 二叉树遍历算法的六种c语言实现 递归与非递归
二叉树遍历分为三种: 先序遍历:先访问根结点,其次左节点,最后右节点 中序遍历:先访问左结点,其次跟节点,最后右节点 后序遍历:先访问左结点,其次右节点,最后根节点 三种遍历的递归算法实现形式类似,仅 ...
最新文章
- 专访云知声黄伟:场景定义芯片,未来所有场景都需要AI | AI名人堂
- Python中函数的参数传递方式
- FactoryBean的使用--转
- 【实验】小型网络WLAN架构实战案例
- 客房收费系统数据库设计
- POJ 1577 Falling Leaves(二叉查找树)
- 双路服务器单路运行,单路还是双路?看需求选择_机箱电源评测-中关村在线
- C++|Java混合实验-Spring Boot获取客户端操作系统,浏览器,Ip等信息,Qt端展示
- 为什么我不推荐你使用vue-cli创建脚手架?
- Service混合开启笔记(startService+bindService)
- JSONObject遍历
- 随机信号分析 matlab仿真实验,随机信号分析实验报告的(基于MATLAB语言).docx
- 360浏览器html文件无图标,电脑桌面360浏览器图标不见了解决方法图文教程
- css用网络图片做背景图片,网络编程css为图片设置背景图片
- 高性能核心板IDO-SOM3908-V1:接口丰富,性能更强,速度更快!
- Nerv - 京东高性能前端框架
- java打印直角三角形解析_编写java程序,打印3个5行直角三角形图案 运行效果如下: 使用 方法 实现 代码截图,必须含有2位学号+姓名_学小易找答案...
- 量化岗经典面试题——纸牌游戏
- 程序员知识体系探索:点、线、面、体
- 了解数据的发展历程--大数据简史
热门文章
- 计算机学院可以举办活动,计算机学院举办2019年家长开放日系列活动
- win10怎么更改账户名称_如何自定义WIN10登陆界面的用户名?
- 每日新闻 | 2018年全球十大IaaS服务商:中国占四席 阿里云第三
- WIN7/WIN10 临时及永久 强制关闭驱动签名验证
- 回顾腾讯电商路:马化腾之痛可否疗愈?
- Learning Typography for Video Editors 学习视频编辑的排版 Lynda课程中文字幕
- 稀疏矩阵CSR存储的C++实现
- Android开发五年,从月薪13K到年薪60W,我只用了三个月!
- 基于java web的在线考试系统(源码+论文)
- 华为5c_华为5c手机价格及产品参数配置【图文】