博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
层序遍历、遍历二叉树的应用
阅读量:5816 次
发布时间:2019-06-18

本文共 1400 字,大约阅读时间需要 4 分钟。

二叉树遍历的本质是怎么样把一个二维结构变成一个一维的线性序列的过程

核心问题:二维结构的线性化
从结点访问其左右儿子结点
访问左儿子后,右儿子结点怎么办?
需要一个寻出结构保存咱叔不访问的结点
存储结构:堆栈、队列
队列实现:遍历从根节点开始,首先将根节点入队,然后开始执行循环:结点出队、访问该结点、其左右儿子入队

1 void LevelOrderTraversal (BinTree BT) 2 { 3     Queue Q; BinTree T; 4     if(!BT)return ;        //若是空树则直接返回 5     Q = CreateQueue(MaxSize);    //创建并初始化队列 6     AddQ(Q, BT); 7     while(!IsEmptyQ(Q) 8     { 9         T = Delete(Q);10         printf("%d", T->data);    //访问取出的 结点11         if(T->Left)  AddQ(Q, T->Left);12         if(T->Right) AddQ(Q, T->Right);13     }14 }

遍历二叉树的应用:输出二叉树的叶子节点

1 void PreOrderPrintLeaves(BinTree BT) 2 { 3     if(BT) 4     { 5         if(!BT->Left && !BT->right) 6             printf(“%d", BT->data); 7         PreOrderPrintLeaves(BT->Left); 8         PreOrderPrintLeaves(BT->Right); 9     }10 }

2.求二叉树的高度

1 int PostOrderGetHight(BinTree BT) 2 { 3     int HL, HR, MaxH; 4     if(BT) 5     { 6         HL = PostOrderGetHight(BT->Left);    //求左子树的高度 7         HR = PostOrderGetHight(BT->Right);    //求右子树的高度 8         MaxH = (HL > HR) ? HL : HR;    //取左右字树的较大高度 9         return (MaxH + 1);            //返回树的高度10     }11     else12         return 0;        //空树的高度为013 }

3.二元运算表达式树及其遍历

前缀表达式和后缀表达式都是正确的,中缀表达式会受运算符优先级的影响
但是可以用加括号的方式来消除这种影响
4.先序和中序序列来确定一棵二叉树
根据先序遍历序列第一个结点确定根节点
再根据根节点在中序遍历序列中分割出左右两个子序列
最后对左子树和右子树分别递归使用相同的方法继续分解
5.类似的,后序和中序遍历序列也可以确定一棵二叉树

转载于:https://www.cnblogs.com/hi3254014978/p/9528019.html

你可能感兴趣的文章
Windows环境配置Apache+Mysql+PHP
查看>>
BZOJ 3209 花神的数论题 数位DP+数论
查看>>
JDBC二查询(web基础学习笔记八)
查看>>
监听器(web基础学习笔记二十二)
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
Lua中的元表与元方法
查看>>
Servlet&jsp基础:第三部分
查看>>
延伸 -- 分类 -- 目录
查看>>
.NET ORM框架 SqlSugar4.0 功能快速预览【开源】
查看>>
Ubuntu12.04LTS安装好后是空白桌面的解决步骤(更新显卡驱动)
查看>>
poj-3696 The Luckiest number
查看>>
[Dynamic Language] Python定时任务框架
查看>>
docker生态系统
查看>>
Furure的简单介绍和使用
查看>>
CSS3 网格布局(grid layout)基础知识 - 隐式网格自己主动布局(grid-auto-rows/grid-auto-columns/grid-auto-flow)...
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
CentOS7下zip解压和unzip压缩文件
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>