当然,由于满二叉树满足完全二叉树的条件,所以它是一种特殊的完全二叉树。 完全二叉树的性质:具有 个节点的完全二叉树的高度 。 5.二叉树的存储形式 一般来讲,二叉树的存储形式有两种:顺序存储结构和链式存储结构。 5.1 顺序存储结构 所谓顺序存储,就是用数组来存储二叉树的数据。我们画图表示一下数组存储二叉树数...
记住:树的组成部分有三块(也可以两块),一个存放孩子链表结点的结构体,另一个是双亲结点结构体,双亲结点结构体里面包含着孩子链表结构体,双亲结点结构体做成数组后就是一个树了,所以说其实两部分也可以组成一棵树,但是为了简洁明了方便后续森林的操作,我们还是把这结构体数组放在一个结构体中形成新一棵树比较好。
二叉树一般可以使用两种结构存储,一种顺序结构,一种链式结构。 1.顺序存储 顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,因为不是完全二叉树会有空间的浪费。而现实中使用中只有堆才会使用数组来存储,关于堆我们下一篇文章会专门讲解。二叉树顺序存储在物理上是一个数组,在逻辑上是一颗二叉树。
}CHILD_PARENT_TREE_ROOT_NODENUM_DATA; 4.2 构建树 OP_STATUSBuildChildParentTree(CHILD_PARTENT_TREE *CPTree,constCHILD_PARENT_TREE_ROOT_NODENUM_DATA *CPTreeRootNodeNum,constCHILD_PARENT_TREE_NODE_DATA *CPTreeData) CPTree表示树,CPTreeRootNodeNum表示根的位置和结点数量,CPTreeData表示结点的数据。
图1 普通树存储结构 如图1 所示,这是一棵普通的树,该如何存储呢?通常,存储具有普通树结构数据的方法有 3 种: 双亲表示法; 孩子表示法; 孩子兄弟表示法; 本节先来学习双亲表示法。 双亲表示法采用顺序表(也就是数组)存储普通树,其实现的核心思想是:顺序存储各个节点的同时,给各节点附加一个记录其父节点位置...
孩子表示法存储普通树采用的是 "顺序表+链表" 的组合结构,其存储过程是:从树的根节点开始,使用顺序表依次存储树中各个节点。需要注意,与双亲表示法不同的是,孩子表示法会给各个节点配备一个链表,用于存储各节点的孩子节点位于顺序表中的位置。 如果节点没有孩子节点(叶子节点),则该节点的链表为空链表。 例如,使...
二叉树的存储结构 顺序存储 链式存储 树的定义和基本术语 树结构通常用来存储逻辑关系为 “一对多” 的数据。例如: 这些元素具有的就是 “一对多” 的逻辑关系,例如元素 A 同时和 B、C、D 有关系,元素 D 同时和 A、H、I、J 有关系等。 观察这些元素之间的逻辑...
DestroyTree(T);//撤销树 1. 2. 3. 4. 5. 6. 4、树的存储结构 ① 双亲表示法 顺序存储 一个结点存储两个内容,data和parent ② 双亲孩子表示法 顺序+链式 顺序存放结点即data,链式存放第一个孩子firstChild ③ 孩子兄弟表示法 链式 类似链式存储二叉树 ...
满二叉树:每个节点都有只能==两个节点。 完全二叉树:(相对于满二叉树来说的) 完全二叉树的特点: 二叉树前序遍历:根左右 二叉树中序遍历:左根右 二叉树后序遍历:左右根 二叉树的存储结构: 解析:1是根节点。23是1的子节点。45是2的子节点 。67是3的子节点. ...