摘要:
递归算法底层的实现使用的是栈存储结构,所以可以直接使用栈写出相应的非递归算法。 先序遍历的非递归算法 从树的根结点出发,遍历左孩子的同时,先将每个结点的右孩子压栈。当遇到结点没有左孩子的时候,取栈顶的右孩子。重复以上过程。实现代码函数: // 先序遍历非递归算法 void PreOrderTrave 阅读全文
posted @ 2018-05-16 09:53
程序员进阶笔记
阅读(1114)
评论(0)
推荐(1)
摘要:
链式存储结构存储的二叉树,对树中结点进行逐个遍历时,由于是非线性结构,需要找到一种合适的方式遍历树中的每个结点。 递归思想遍历二叉树 之前讲过,树是由根结点和子树部分构建的,对于每一棵树来说,都可以分为 3 部分:左子树、根结点和右子树。所以,可以采用递归的思想依次遍历每个结点。根据访问结点时机的不 阅读全文
posted @ 2018-05-16 09:21
程序员进阶笔记
阅读(1273)
评论(0)
推荐(1)
摘要:
通过前一节的学习,了解了树的一些基本知识。二叉树是在树的基础上对本身的结构做了更高的限制: 二叉树本身是有序树。 二叉树中各结点的度最多是 2,可以是 0,1,2。 图1 二叉树 满二叉树和完全二叉树 如果二叉树中除了叶子结点,每个结点的度都为 2,那么此二叉树为满二叉树。例如图 1 就是一个满二叉 阅读全文
posted @ 2018-05-16 09:16
程序员进阶笔记
阅读(2452)
评论(0)
推荐(0)
摘要:
之前介绍的所有的数据结构都是线性存储结构。本章所介绍的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。 (A) (B) 图 1 树的示例 图 1(A) 是使用树结构存储的集合 {A,B,C,D,E,F,G,H,I,J,K,L,M} 的示意图。对于数据 A 来说,和数据 B、C 阅读全文
posted @ 2018-05-16 09:12
程序员进阶笔记
阅读(823)
评论(0)
推荐(0)
摘要:
复制广义表数据结构中的树 树是数据结构中比较重要也是比较难理解的一类存储结构。本章主要主要围绕二叉树,对树的存储以及遍历做详细的介绍,同时还会涉及到有关树的实际应用,例如构建哈弗曼编码等。 由于树存储结构本身比较复杂,需要有耐心地去搞清楚每一节中的每个知识点,在学习时,建议从每节的问题出发,搞清楚文章的解题思路。 本章内容: 1. 数据结构中的树存储结构 2. 二叉树顺序存储和链式存储的C语... 阅读全文
posted @ 2018-05-16 09:09
程序员进阶笔记
阅读(965)
评论(0)
推荐(0)

浙公网安备 33010602011771号