树和二叉树 blackboard academic suite精品管理.ppt

6.1 树的有关概念 6.2 二叉树 6.3 二叉树的遍历 6.4 遍历的应用 6.5 线索二叉树 6.6 树和森林 6.7 Huffman树及其应用;树 和 二 叉 树;6.1 树的有关概念 6.2 二叉树 6.3 二叉树的遍历 6.4 遍历的应用 6.5 线索二叉树 6.6 树和森林 6.7 Huffman树及其应用;本章学习重点和难点;树形结构是一种重要的非线性结构。树是n个结点的有限集合,在任一棵非空树中: (1)有且仅有一个称为根的结点。 (2)其余结点可分为m个互不相交的集合,而且这些集合中的每一集合都本身又是一棵树,称为根的子树。; 树的概念 ; 树的概念 ; 树的基本操作P ; 树的基本操作P ; 树的基本操作P ;例如:集合 T={A, B, C, D, E, F, G, H, I, J,K,L,M} A是根,其余结点可以划分为3个互不相交的集合: T1={B, E, F,K,L} , T2={C, G} , T3={D, H, I, J,M} 这些集合中的每一集合都本身又是一棵树,它们是A的子树。 ; 从逻辑结构看: 树是一种分枝结构,树中只有根结点没有前趋;其余结点有零个或多个后继; 除根外,其余结点都有且仅一个前趋;都存在唯一一条从根到该结点的路径。;6.1 树的有关概念;; 2)树是常用的数据组织形式 有些应用中数据元素之间并不存在分支结构关系,但是为了便于管理和使用数据,将它们用树的形式来组织。;(1)树形表示法; ; ;结点层:根结点的层定义为1,其它依此类推; 树的深度:树中最大的结点层; 结点的度:结点子树的个数; 树的度: 树中最大的结点度; 叶子结点:也叫终端结点,是度为 0 的结点; ;分枝结点:度不为0的结点; 有序树:子树有序的树,如:家族树; 无序树:不考虑子树的顺序; 森林:互不相交的树集合;;6.1 树的有关概念 6.2 二叉树 6.3 二叉树的遍历 6.4 遍历的应用 6.5 线索二叉树 6.6 树和森林 6.7 Huffman树及其应用; 树是一种分枝结构的对象,在树的概念中,对每一个结点孩子的个数没有限制,因此树的形态多种多样,本节我们主要讨论另一种树型结构——二叉树。; 6.2.1 二叉树的概念 6.2.2 二叉树的性质 6.2.3 二叉树的存储结构;6.2.1 二叉树的概念;; 二叉树的基本形态 ; 6.2.1 二叉树的概念 6.2.2 二叉树的性质 6.2.3 二叉树的存储结构; 证明:最多结点数为各层结点个数相加,即 1+2+4+…+2k-1=2k-1 ; 两种特殊的二叉树;证明:设所求完全二叉树的深度为k 由性质2和完全二叉树的定义知: 2k-1-1<n≤2k-1 ;性质4 对任意二叉树T,如果度数为0结点数为n0,度数为1结点数为n1,度数为2结点数为n2,则n0=n2+1。 ;性质5:若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点:;编号i=4 双亲为?i/2? =2 左子树为2i=8 右子树为2i+1=9; 6.2.1 二叉树的概念 6.2.2 二叉树的性质 6.2.3 二叉树的存储结构;二叉树的链式存储表示; (1)完全(或满)二叉树;(2)一般二叉树;(3)特殊的二叉树;二叉链表存储: 二叉链表中每个结点包含三个域:数据域、左指针域、右指针域 ;二叉链表图示;性质6:n 个结点的二叉树中,共有 n+1 个空指针域。;三叉链表(带双亲指针的二叉链表):三叉链表中每个结点包含四个域:数据域、左指针域、右指针域、双亲指针域;;6.1 树的有关概念 6.2 二叉树 6.3 二叉树的遍历 6.4 遍历的应用 6.5 线索二叉树 6.6 树和森林 6.7 Huffman树及其应用;; ; “遍历”是任何类型均有的操作: 线性结构的遍历:只有一条搜索路径(因为每个结点均只有一个后继); 非线性结构的遍历:二叉树是非线性结构,则存在如何遍历即按什么样的搜索路径遍历的问题。; 对“二叉树”而言,可以有三条搜索路径:; 二叉树由根、左子树、右子树三部分组成 二叉树的遍历可以分解为:访问根,遍历左子树和遍历右子树;若二叉树非空 (1)中序遍历左子树 (2)访问根结点 (3)中序遍历右子树;; 若二叉树非空 (1)访问根结点; (2)先序遍历左子树; (3

文档评论(0)

1亿VIP精品文档

相关文档