二叉树的存储及遍历
- 二叉树的存储结构:
1.顺序存储结构-适用于完全二叉树
一般二叉树也可以通过补全结点,采用这种结构(会造成空间的浪费):
2.链表存储:定义结构,含有三个域,分别存放数据、左结点、右结点
- 二叉树的遍历(以链式存储为例):
- 递归(根本还是堆栈)实现
- 先序遍历:
- 中序遍历:
- 后序遍历:
- 每个节点都有三次碰到的机会,遍历过程中经过结点的路线一样,只是访问各结点的时机不同
- 先序遍历:
2.二叉树的非递归遍历(直接用循环和栈):
1.中序遍历:
2.先序遍历:
3.层序遍历:
-
-
- 二叉树遍历的本质问题:二维结构的线性化
- 问题:遍历需要访问左右结点,访问了一个结点以后另一个结点怎么办-保存另一个结点或者当前结点
- 如何保存这些结点:堆栈、队列----(前序中序后序,用堆栈保存自己这个结点(也可以保存右结点)
- 用队列保存右结点:从根结点开始,抛出一个元素,存入该节点的左右结点
- 特征:一层一层的访问
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!