//==========================================定义头部
#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++二叉树的建立与遍历相关推荐

  1. 二叉树的建立和遍历算法 - 数据结构和算法47

    二叉树的建立和遍历算法 让编程改变世界 Change the world by program   有童鞋会说,我们上节课研究这么多遍历的方法干啥呢?聪明的鱼油们怎么看?! 对于二叉树,思路方面我们已 ...

  2. 小朋友学数据结构(3):二叉树的建立和遍历

    小朋友学数据结构(3):二叉树的建立和遍历 一.基本概念 BinaryTree.png 二叉树:每个结点的子结点个数不大于2的树,叫做二叉树. 根结点:最顶部的那个结点叫做根结点,根结点是所有子结点的 ...

  3. C语言二叉树实验报告流程图,二叉树的建立与遍历实验报告(c语言编写,附源代码).doc...

    二叉树的建立与遍历实验报告(c语言编写,附源代码).doc 第 1 页,共 9 页二叉树的建立与遍历实验报告级 班 年 月 日 姓名 学号_ 1实验题目建立一棵二叉树,并对其进行遍历(先序.中序.后序 ...

  4. 二叉树的遍历实验报告C语言,二叉树的建立与遍历实验报告(c语言编写,附源代码)...

    程序用VC编写,实现建立一棵二叉树的功能,并对其进行遍历(先序.中序.后序),并且打印输出遍历结果. 二叉树的建立与遍历实验报告 级 班 年 月 日 姓名 学号_ 1.实验题目 建立一棵二叉树,并对其 ...

  5. 数据结构——二叉树的建立与遍历算法(实验报告)

    实验名称:二叉树的建立与遍历算法          指导教师: 实验日期:2022年月日 实验地点: 成绩: 实验目的: 1.掌握二叉树的定义. 2.二叉树的链式存储结构及在链式存储结构中三种遍历(前 ...

  6. 二叉树的建立和遍历的各种问题

    链表声明: //基本结构声明 #include<iostream> #include<queue> #include<stack> #include<cstd ...

  7. 二叉树的建立与遍历(先中后层序)

    在做一些算法题时,我会经常用到VS2017去测试,每次去找一个合适的二叉树觉得很麻烦,今天就自己写了一个放在博客上,下次就直接复制了 包含二叉树的建立,以及二叉树的前序遍历.中序遍历.后序遍历和层序遍 ...

  8. 二叉树的建立与遍历(数据结构)

    之前上数据结构时,只是上课听听,没咋在课下实现,现在大二都快结束了,经过几波的ACM竞赛,感觉数据结构太重要了,带着兴趣和欲望重新学一下数据结构中的基础操作 我用的是先序次序输入二叉树中节点建立的二叉 ...

  9. 二叉树 的建立及遍历 过程

    我知道二叉树有先序遍历,中序遍历,后续遍历等等,不过这里说的的是输入一些点(11,LL) (7,LLL) (8,R) (5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ...

  10. 关于二叉树的建立和遍历易错问题

    ```c #define _CRT_SECURE_NO_DEPRECATE //二叉树的建立 #include<stdio.h> #include<stdlib.h> type ...

最新文章

  1. 变速更顺滑_1.6TGDI直喷发动机+7速湿式双离合自动变速箱,表现会如何?
  2. SAP PP常用表(重要)
  3. careercup-数组和字符串1.7
  4. 使用 apifm-wxapi 快速开发小程序
  5. 深度学习检测眼睛疾病
  6. 常用linux命令及图解(实践文档,小白都可以看得懂)
  7. 【C语言】C语言常量和变量
  8. Star Schema完全参考手册读书笔记一
  9. ***NSFileManager
  10. 基于VISSIM和Python的二次开发基础—多时段配时控制
  11. 80386常用内部寄存器
  12. 必须使用javadoc形式的注释
  13. python合并word表格_python docx处理word文档中表格合并问题
  14. 1072 开学寄语 Python实现
  15. Java里的char类型能不能存储一个中文字符?
  16. 金力股份冲刺科创板:拟募资13亿 比亚迪小米复星是股东
  17. ​汽车芯片的可靠性设计:控制亚稳态,提升稳定性
  18. 类似 MS Project 的项目管理工具有哪些
  19. PPPOE拨号之六:华为路由器 PPPoE拨号配置(包含Client+NAT与服务器配置)
  20. 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 習題1

热门文章

  1. 【Java 虚拟机原理】Class 字节码二进制文件分析 四 ( 字段表数据结构 | 字段表详细分析 | 访问标志 | 字段名称 | 字段描述符 | 属性项目 )
  2. 【组合数学】递推方程 ( 非齐次部分是 指数函数 且 底是特征根 | 求特解示例 )
  3. 【Android 高性能音频】高性能音频简介 ( 高性能音频问题引入 | 使用场景 | 相关开发库及技术 )
  4. 第三周总结CoreIDRAW
  5. 关于使用旋转四元数绕轴旋转θ角度时,使用参数是θ/2的理解
  6. Sass在编译中文注释中报错
  7. Tomcat备份脚本
  8. java 继承与多态
  9. Selenium java环境搭建
  10. 整理记录个人面试问题