二叉树的建立和递归遍历
const int MAXN = 1000010;
//二叉树的节点的结构体的表示形式
struct Node
{
char data;
struct Node *leftchild,*rightchild;
}BTree;
//栈的结构体的表示形式
struct sstack
{
BTree *map_stack[MAXN];
int top;
}Stack;
//队列的结构体的表示形式
struct qqueue
{
BTree *map_queue[MAXN];
int head;
int tail;
}Queue;
//创建二叉树,利用递归的方法
BTree *BuildTree()
{
char char_str;
printf(" %c",&char_str);
if(char_str == '#')//"#"表示的是该树的该孩子是空的
{
return null;
}
else
{
BTree * Bree = (BTree*)malloc(sizeof(BTree));
if(Bree == null)
{
return null;
}
Bree.data = char_str;
Bree -> leftchild = BuildTree();
Bree -> rightchild = BuildTree();
return Bree;
}
}
//前序遍历,递归方法实现
void Preorder(BTree *BT)
{
if(BT == null)
{
return ;
}
printf("%c ",BT -> data);
Preorder(BT -> leftchild);
Preorder(BT -> rightchild);
}
//中序遍历,递归方法实现
void Inorder(BTree *BT)
{
if(BT == null)
{
return ;
}
Inorder(BT -> leftchild);
printf("%c ",BT -> data);
Inorder(BT -> rightchild);
}
//后序遍历,递归方法实现
void Postorder(BTree *BT)
{
if(BT == null)
{
return ;
}
Postorder(BT -> leftchild);
Postorder(Bt -> rightchild);
printf("%c ",BT -> data);
}
转载于:https://www.cnblogs.com/GODLIKEING/p/3370254.html
二叉树的建立和递归遍历相关推荐
- linux 递归创建线程,[linux]二叉树的建立及其递归遍历(C语言实现)
#二叉树的特点: 每一个节点最多有两棵子树,所以二叉树中不存在度大于2的节点,注意,是最多有两棵,没有也是可以的 左子树和右子树是有顺序的,次序不能颠倒,这点可以在哈夫曼编码中体现, 顺序不同编码方式 ...
- 二叉树的建立及递归遍历
huangjing 二叉树的的建立方式为前序 二叉树有三种遍历 前序遍历(NLR) 中序遍历(LNR) 兴许遍历(LRN) 非递归的算法明天补上 代码为: #include<iostre ...
- 二叉树的前序非递归遍历
二叉树的前序非递归遍历 前面学习过二叉树的前序遍历,使用递归的方式.简单回顾一下: Status PerOrder(BiTree T) {//前序遍历二叉树if (T != NULL) {Visit( ...
- 二叉树 2.0 -- 非递归遍历
二叉树递归遍历存在的问题 如果我们的二叉树只有左子树,而且树的高度还很深的时候,这个时候递归调用遍历的时候,栈帧空间开辟的较大,很可能造成栈溢出.但是我们一个程序中,为堆分配的空间要比栈大的多,这个时 ...
- 对于二叉树三种非递归遍历方式的理解
利用栈实现二叉树的先序,中序,后序遍历的非递归操作 栈是一种先进后出的数据结构,其本质应是记录作用,支撑回溯(即按原路线返回):因此,基于其的二叉树遍历操作深刻的体现了其特性: 若后续的输入和其前面的 ...
- 二叉树学习之非递归遍历
二叉树递归遍历可谓是学过数据结构的同仁都能想一下就能写出来,但在应聘过程我们常常遇到的是写出一个二叉树非递归遍历函数,接着上篇文章写二叉树的非递归遍历,先难后易,一步一步的来. 先上代码: #incl ...
- 【代码随想录训练营】【Day14】第六章|二叉树|理论基础|递归遍历|迭代遍历|统一迭代
理论基础 二叉树的定义形式有:节点指针和数组 在数组中,父节点的下标为i,那么其左孩子的下标即i*2+1,右孩子的下标即为i*2+2 二叉树的常见遍历形式有:前序遍历.后序遍历.中序遍历和层序遍历 前 ...
- 二叉树中序非递归遍历
递归是程序设计中强有力的工具.递归函数结构清晰,使程序易读.但递归函数也有不可克服的弱点,时间.空间效率较低,运行代价较高,所以在实际使用中,常希望使用它的迭代版本.为了实现非递归遍历算法,需要一个堆 ...
- 二叉树 中序非递归遍历算法 c++
二叉树的中序非递归算法,详见下 首先,二叉树结点定义 typedef struct BiTNode//二叉树结点结构 {string data;struct BiTNode *lchild,*rchi ...
最新文章
- 【UVA】10152 ShellSort (几只乌龟的故事)
- Redhat9五笔输入法安装
- java 子线程传参_踩坑之Java执行Linux命令死锁阻塞挂起
- ThinkPHP 中M方法和D方法的具体区别
- 2020年快手校招JAVA岗笔试第二题
- element.style内联样式修改
- 中科大 计算机网络9 互联网历史
- win10 设置游戏全屏
- 驰声科技推出AI对话考辅系统 将VR引入语音评测
- 人头检测 模型 c++_常熟市房屋建筑检测鉴定服务单位 房屋鉴定中心
- 上海蓝光集团公司信息化建设规划方案
- 荣耀手机计算机设置功能,荣耀Play手机如何开启USB调试功能和电脑进行连接
- springmvc视图解析器详解
- 集合框架(Collection)——Map和例题
- 什么是范数(norm)?以及L1,L2范数的简单介绍
- 【5G系列】高层协议栈——协议栈架构
- 【JavaScript-9】Javascript中的布尔值和等式
- python两台电脑文件传输_两行python代码实现一个http服务器,告别文件传输烦恼...
- tensorflow 1.14 ssd_mobilenet_v1 模型训练
- 专利编写——发明专利请求书
热门文章
- python怎么安装matplotlib-python安装matplotlib
- python条件语句-Python if else条件语句详解
- python画曲线-如何通过python画loss曲线的方法
- python 编程一日一练-Python每日一练0013
- python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程
- 编程软件python下载-Thonny(Python编程工具) v3.2.7 官方版
- python考级证书-python二级证书有用吗
- python和c学习-关于本站 - cPython - 给大学生的入门教程
- python绘制散点图-matplotlib在python上绘制3D散点图实例详解
- python基础第三章选择结构答案-python3 学习笔记(二)选择结构、循环结构