zoukankan
html css js c++ java
树的遍历
在应用树结构解决问题时,往往要求按照某种次序获得树中全部结点的信息,这种操作叫作树的遍历。
遍历的方法有多种,常用的有:
A、先序(根)遍历:先访问根结点,再从左到右按照先序思想遍历 各棵子树。 如上图先序遍历的结果为:125634789;
B、后序(根)遍历:先从左到右遍历各棵子树,再访问根结点。如 上图后序遍历的结果为:562389741;
C、层次遍历:按层次从小到大逐个访问,同一层次按照从左到右的 次序。 如上图层次遍历的结果为:123456789;
AB两种方法的定义是递归的,所以在程序实现时往往也是采用递归的思想。既通常所说的“
深度优先搜索
”。
【方法一】数组模拟
【方法二】指针
C方法应用也较多,实际上是我们讲的“
广度优先搜索
”。思想如下:若某个结点被访问,则该结点的子结点应记录,等待被访问。顺序访问各层次上结点,直至不再有未访问过的结点。为此,引入一个队列来存储等待访问的子结点,设一个队首和队尾指针分别表示出队、进队的下标。
【方法一】数组模拟
【方法二】指针
查看全文
相关阅读:
常用设计模式:装饰者模式
常用数据结构算法 : 堆排序
常用数据结构算法:二叉树的最近公共祖先
java网络通信:HTTP协议 之 Sessions与Cookies
java网络通信:HTTP协议
常见的设计模式:工厂模式
Java基础:类加载机制
一个C++右值引用的问题
剖析一个用C++写的行情交易系统
C++ Coroutine简明教程
原文地址:https://www.cnblogs.com/ljy-endl/p/11260480.html
最新文章
Ant+Jmeter自动化接口测试的部署 及 部署过程中的坑
CSS3中transform几个属性值的注意点
CSS动画 animation与transition
多个inline元素、block元素、inline-block元素在父容器中的换行情况
golang如何优雅地关闭通道
通道用例大全
golang微服务网关一:网络基础知识扫盲(温故而知新)
golang包学习
gitlab 强制提交
数组 切片 映射注意事项
热门文章
git版本升级
golang etcd clientv3.New()不报超时错误的问题解决
golang 反向代理reverseproxy源码分析
Go类型系统概述
协程和延迟调用的实参的估值时刻
使用Bitmap来实现用户标签系统
MySQL出现Waiting for table metadata lock的原因以及解决方法
常用数据结构算法 : 大数的加减
常用数据结构算法 : 完全二叉树判别
常用设计模式:适配器模式
Copyright © 2011-2022 走看看