C++二叉树的建立与遍历
//==========================================定义头部
#include <iostream>
using namespace std;
struct BiTNode{ char data; struct BiTNode *lchild, *rchild;//左右孩子
};
BiTNode*T;
void CreateBiTree(BiTNode* &T);
void Inorder(BiTNode* &T);
void PreOrderTraverse(BiTNode* &T);
void Posorder(BiTNode* &T);
//===========================================主函数
int main(){
cout<<"创建一颗树,其中A->Z字符代表树的数据,用“#”表示空树:"<<endl; CreateBiTree(T);
cout<<"先序递归遍历:"<<endl;
PreOrderTraverse(T);
cout<<endl;
cout<<"中序递归遍历:"<<endl; Inorder(T);
cout<<endl;
cout<<"后序递归遍历:"<<endl; Posorder(T);
cout<<endl; return 1;}
//=============================================先序递归创建二叉树树
void CreateBiTree(BiTNode* &T){ //按先序输入二叉树中结点的值(一个字符),空格字符代表空树, //构造二叉树表表示二叉树T。 char ch; if((ch=getchar())=='#')T=NULL;//其中getchar()为逐个读入标准库函数 else{ T=new BiTNode;//产生新的子树 T->data=ch;//由getchar()逐个读入来 CreateBiTree(T->lchild);//递归创建左子树 CreateBiTree(T->rchild);//递归创建右子树 }
}//CreateTree
//===============================================先序递归遍历二叉树
void PreOrderTraverse(BiTNode* &T){ //先序递归遍历二叉树 if(T){//当结点不为空的时候执行 cout<<T->data; PreOrderTraverse(T->lchild);// PreOrderTraverse(T->rchild); } else cout<<"";
}//PreOrderTraverse
//================================================中序遍历二叉树
void Inorder(BiTNode* &T){//中序递归遍历二叉树 if(T){//bt=null退层 Inorder(T->lchild);//中序遍历左子树 cout<<T->data;//访问参数 Inorder(T->rchild);//中序遍历右子树 } else cout<<""; }//Inorder
//=================================================后序递归遍历二叉树
void Posorder(BiTNode* &T){ if(T){ Posorder(T->lchild);//后序递归遍历左子树 Posorder(T->rchild);//后序递归遍历右子树 cout<<T->data;//访问根结点 } else cout<<"";
}
//==============================
C++二叉树的建立与遍历相关推荐
- 二叉树的建立和遍历算法 - 数据结构和算法47
二叉树的建立和遍历算法 让编程改变世界 Change the world by program 有童鞋会说,我们上节课研究这么多遍历的方法干啥呢?聪明的鱼油们怎么看?! 对于二叉树,思路方面我们已 ...
- 小朋友学数据结构(3):二叉树的建立和遍历
小朋友学数据结构(3):二叉树的建立和遍历 一.基本概念 BinaryTree.png 二叉树:每个结点的子结点个数不大于2的树,叫做二叉树. 根结点:最顶部的那个结点叫做根结点,根结点是所有子结点的 ...
- C语言二叉树实验报告流程图,二叉树的建立与遍历实验报告(c语言编写,附源代码).doc...
二叉树的建立与遍历实验报告(c语言编写,附源代码).doc 第 1 页,共 9 页二叉树的建立与遍历实验报告级 班 年 月 日 姓名 学号_ 1实验题目建立一棵二叉树,并对其进行遍历(先序.中序.后序 ...
- 二叉树的遍历实验报告C语言,二叉树的建立与遍历实验报告(c语言编写,附源代码)...
程序用VC编写,实现建立一棵二叉树的功能,并对其进行遍历(先序.中序.后序),并且打印输出遍历结果. 二叉树的建立与遍历实验报告 级 班 年 月 日 姓名 学号_ 1.实验题目 建立一棵二叉树,并对其 ...
- 数据结构——二叉树的建立与遍历算法(实验报告)
实验名称:二叉树的建立与遍历算法 指导教师: 实验日期:2022年月日 实验地点: 成绩: 实验目的: 1.掌握二叉树的定义. 2.二叉树的链式存储结构及在链式存储结构中三种遍历(前 ...
- 二叉树的建立和遍历的各种问题
链表声明: //基本结构声明 #include<iostream> #include<queue> #include<stack> #include<cstd ...
- 二叉树的建立与遍历(先中后层序)
在做一些算法题时,我会经常用到VS2017去测试,每次去找一个合适的二叉树觉得很麻烦,今天就自己写了一个放在博客上,下次就直接复制了 包含二叉树的建立,以及二叉树的前序遍历.中序遍历.后序遍历和层序遍 ...
- 二叉树的建立与遍历(数据结构)
之前上数据结构时,只是上课听听,没咋在课下实现,现在大二都快结束了,经过几波的ACM竞赛,感觉数据结构太重要了,带着兴趣和欲望重新学一下数据结构中的基础操作 我用的是先序次序输入二叉树中节点建立的二叉 ...
- 二叉树 的建立及遍历 过程
我知道二叉树有先序遍历,中序遍历,后续遍历等等,不过这里说的的是输入一些点(11,LL) (7,LLL) (8,R) (5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ...
- 关于二叉树的建立和遍历易错问题
```c #define _CRT_SECURE_NO_DEPRECATE //二叉树的建立 #include<stdio.h> #include<stdlib.h> type ...
最新文章
- 变速更顺滑_1.6TGDI直喷发动机+7速湿式双离合自动变速箱,表现会如何?
- SAP PP常用表(重要)
- careercup-数组和字符串1.7
- 使用 apifm-wxapi 快速开发小程序
- 深度学习检测眼睛疾病
- 常用linux命令及图解(实践文档,小白都可以看得懂)
- 【C语言】C语言常量和变量
- Star Schema完全参考手册读书笔记一
- ***NSFileManager
- 基于VISSIM和Python的二次开发基础—多时段配时控制
- 80386常用内部寄存器
- 必须使用javadoc形式的注释
- python合并word表格_python docx处理word文档中表格合并问题
- 1072 开学寄语 Python实现
- Java里的char类型能不能存储一个中文字符?
- 金力股份冲刺科创板:拟募资13亿 比亚迪小米复星是股东
- ​汽车芯片的可靠性设计:控制亚稳态,提升稳定性
- 类似 MS Project 的项目管理工具有哪些
- PPPOE拨号之六:华为路由器 PPPoE拨号配置(包含Client+NAT与服务器配置)
- 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 習題1
热门文章
- 【Java 虚拟机原理】Class 字节码二进制文件分析 四 ( 字段表数据结构 | 字段表详细分析 | 访问标志 | 字段名称 | 字段描述符 | 属性项目 )
- 【组合数学】递推方程 ( 非齐次部分是 指数函数 且 底是特征根 | 求特解示例 )
- 【Android 高性能音频】高性能音频简介 ( 高性能音频问题引入 | 使用场景 | 相关开发库及技术 )
- 第三周总结CoreIDRAW
- 关于使用旋转四元数绕轴旋转θ角度时,使用参数是θ/2的理解
- Sass在编译中文注释中报错
- Tomcat备份脚本
- java 继承与多态
- Selenium java环境搭建
- 整理记录个人面试问题