软件技术基础课件3——数据结构与算法2精要.ppt

软件技术基础课件3——数据结构与算法2精要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件技术基础课件3——数据结构与算法2精要

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第二部分 数据结构与算法 树结构 二叉树的存储结构 顺序存储 完全二叉树:用一组地址连续的存储单元依次自上而下、自左至右存储结点元素,即将编号为 i 的结点元素存储在一维数组中下标为 i –1 的分量中 一般二叉树:将其每个结点与完全二叉树上的结点相对照,存储在一维数组的相应分量中 1 2 3 4 5 6 2 4 5 3 6 1 完全二叉树 2 4 5 3 6 1 非完全二叉树 1 2 3 4 5 0 6 第二部分 数据结构与算法 树结构 二叉树的存储结构 链表存储:树的每个结点对应一个链表结点 n 个结点的二叉链表中,有 n + 1 个空指针域 data parent lchild rchild lchild data rchild 结点结构 data rchild lchild A B C D E F G A B C D E F G ^ ^ ^ ^ ^ ^ ^ ^ 第二部分 数据结构与算法 A B C D E F G ^ ^ ^ ^ ^ ^ ^ ^ ^ 三叉链表 A B C D E F G parent data lchild rchild lchild data parent rchild 结点结构 第二部分 数据结构与算法 树结构 二叉树的遍历 遍历:顺着某一条搜索路径巡访二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次 访问:对结点作各种处理,如:输出结点的信息、修改结点的数据值等,但要求这种访问不破坏原来的数据结构 遍历目的:得到树中所有结点的一个线性排列 遍历方法: 假设:L:遍历左子树 D:访问根结点 R:遍历右子树 共有: DLR、LDR、LRD、DRL、RDL、RLD 根结点 左子树 右子树 第二部分 数据结构与算法 树结构 二叉树的遍历 遍历方法 若规定先左后右,则只有前三种情况: DLR —— 先(根)序遍历, LDR —— 中(根)序遍历, LRD —— 后(根)序遍历。 根结点 左子树 右子树 第二部分 数据结构与算法 树结构 二叉树的遍历 先序遍历: 若二叉树为空,则空操作;否则 (1) 访问根结点; (2) 先序遍历左子树; (3) 先序遍历右子树。 先序遍历的顺序为:ABC A B C 先序遍历的顺序为: ABELDHMIJ A B D E L H M I J 第二部分 数据结构与算法 树结构 二叉树的遍历 中序遍历: 若二叉树为空,则空操作;否则 (1)中序遍历左子树; (2)访问根结点; (3)中序遍历右子树。 中序遍历的顺序为:BAC A B C 中序遍历的顺序为: ELBAMHIDJ A B D E L H M I J 第二部分 数据结构与算法 树结构 二叉树的遍历 后序遍历: 若二叉树为空,则空操作;否则 (1)后序遍历左子树; (2)后序遍历右子树; (3)访问根结点。 中序遍历的顺序为:BCA A B C 后序遍历的顺序为: LEBMIHJDA A B D E L H M I J * 第二部分 数据结构与算法 树结构 二叉树举例:C++语言定义二叉树,以及先序遍历、深度计算的递归算法 第二部分 数据结构与算法 树结构 线索二叉树 按照某种遍历方式对二叉树进行遍历,可以把二叉树中所有结点排序为一个线性序列。在该序列中,除第一个结点外每个结点有且仅有一个直接前驱结点;除最后一个结点外每一个结点有且仅有一个直接后继结点。指向直接前驱结点和指向直接后续结点的指针被称为线索(Thread),加了线索的二叉树称为线索二叉树 n个结点二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指。 加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。 根据线索性质的不同,线索二叉树可分为前序线索二叉树

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档