- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计树PPT
第六章 树; 树是一类重要的非线性数据结构,是以分支关系定义的层次结构 6.1 树的定义 定义 定义:树(tree)是n(n0)个结点的有限集T,其中: 有且仅有一个特定的结点,称为树的根(root) 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree) 特点: 树中至少有一个结点——根 树中各子树是互不相交的集合;A;基本术语 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点 孩子(child)——结点子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点叫该结点的~ 兄弟(sibling)——同一双亲的孩子 树的度——一棵树中最大的结点度数 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次数 森林(forest)——m(m?0)棵互不相交的树的集合;A;性质3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1;几种特殊形式的二叉树 满二叉树 定义:;1;性质5:对于具有n个结点完全二叉树,我们从根结点起,自上而下,从左到右给所有结点编号,假设编号为i的结点为ki(1≤i≤n),则有: ①若i1,则ki的双亲编号为;若i=1,则ki是根结点,无双亲; ②若2i≤n,则ki的左孩子编号为2i;否则,ki无左孩子。即完全 二叉树中编号i的结点必定是叶子结点。 ③若2i+1≤n,则ki的右孩子编号为2i+1。 ④若i为奇数且不为1,则ki的左兄弟编号为i-1。 ⑤若i为偶数且小于n,则ki的右兄弟编号为i+1。 ;6.3 树的存储结构;一般二叉树的顺序存储:为了象完全二叉树一样,结点编号所得层次序列能够反映结点间的逻辑关系,一般二叉树的顺序存储是按完全二叉树的形式存储树中结点的。具体实现方法是:在一般二叉树上添上一些实际上并不存在的“虚结点”,使它成为完全二叉树的模样,而在存储结构中,用某一特殊值表示“虚结点”。这样就构成了一般二叉树的顺序存储结构。 若一般二叉树的模样较完全二叉树相差甚远,需要添加的虚结点将很多,这样会造成存储空间的大量浪费。在最坏的情况下,一个深度为k且只有k个结点的右单支树需要 2k-1个结点的存储空间。 ;例:;链式存储结构 链式存储结构是存储二叉树的最自然的方法。通常分为两种,即二叉链表和带双亲指针的二叉链表(亦称为三叉链表)。 二叉链表:每个结点设置三个域,分别是存储结点本身的数据域data、指向左孩子的左指针域lchild和指向右孩子的右指针域rchild。结点结构为:;树的存储结构 双亲表示法 实现:定义结构数组存放树的结点,每个结点含两个域: 数据域:存放结点本身信息 双亲域:指示本结点的双亲结点在数组中位置 特点:找双亲容易,找孩子难;例: ;C语言类型说明 ;a;孩子表示法 多重链表:每个结点有多个指针域,分别指向其子树的根 结点同构:结点的指针个数相等,为树的度D 结点不同构:结点指针个数不等,为该结点的度d;a;带双亲的孩子链表;孩子兄弟表示法(二叉树表示法) 实现:用二叉链表作树的存储结构,链表中每个结点的两个指针域分别指向其第一个孩子结点和下一个兄弟结点 特点 操作容易 破坏了树的层次;二叉树的存储结构 顺序存储结构 实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素 特点: 结点间关系蕴含在其存储位置中 浪费空间,适于存满二叉树和完全二叉树;链式存储结构 二叉链表;三叉链表;树与二叉树转换;将树转换成二叉树 加线:在兄弟之间加一连线 抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系 旋转:以树的根结点为轴心,将整树顺时针转45°;将二叉树转换成树 加线:若p结点是双亲结点的左孩子,则将p的右孩子,右孩子的右孩子,……沿分支找到的所有右孩子,都与p的双亲用线连起来 抹线:抹掉原二叉树中双亲与右孩子之间的连线 调整:将结点按层次排列,形成树结构;森林转换成二叉树 将各棵树分别转换成二叉树 将每棵树的根结点用线相连 以第一棵树根结点为二叉树的根,再以根结点为轴心,顺时针旋转,构成二叉树型结构;二叉树转换成森林 抹线:将二叉树中根结点与其右孩子连线,及沿右分支有哪些信誉好的足球投注网站到的所有右孩子间连线全部抹掉,使之变成孤立的二叉树 还原:将孤立的二叉树还原成树;6.4 树和二叉树的遍历 树的遍历 遍历——按一定规律走遍树的各个顶点,且使每一顶点仅被访问一次,即找一个完整而有规律的走法,以得到树中所有结点的一个线性排列 常用方法 先根(序)遍历:先访问树的根结点,然后
您可能关注的文档
最近下载
- 4.3免疫失调课件(共36张PPT)高中生物学 人教版(2019)选择性必修一.pptx VIP
- 新解读《JB_T 8446 - 2013隐极式同步发电机转子匝间短路测定方法》必威体育精装版解读.docx VIP
- 一种基于伯努利吸附原理的爬壁检测机器人.pdf VIP
- ZEEKR知识自测及参考答案.docx VIP
- 徐宁金枪手人物介绍水浒传.pptx VIP
- 2025年CSP-S初赛真题(文末附答案).pdf VIP
- 江苏开放大学设计思维与创意设计创意元素训练.doc VIP
- (2024新版本)人教版七年级上册生物全册教案.doc
- 自考劳动和社会保障法历年真题.pdf VIP
- 制冷用水平管降膜蒸发器管束换热优化研究.pdf VIP
文档评论(0)