- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章A--数据结构课件(吴伟民-严蔚敏编著)
第5章 数组和广义表(Arrays Lists) 2、广义表特点: 有次序性 有长度 有深度 可递归 可共享 5.5 广义表的存储结构 数据结构课程的内容 第6章 树和二叉树( Tree Binary Tree ) 6.1 树的基本概念 1. 树的定义 树的表示法有几种: 图形表示法: 广义表表示法 左孩子-右兄弟表示法 树的抽象数据类型定义 2. 若干术语 2. 若干术语(续) 3. 树的逻辑结构 (特点): 一对多(1:n),有多个直接后继(如家谱树、目录树等等),但只有一个根结点,且子树之间互不相交。 讨论3:树的链式存储方案应该怎样制定? 可规定为:从上至下、从左至右将树的结点依次存入内存。 重大缺陷:复原困难(不能唯一复原就没有实用价值)。 5. 树的运算 要明确: 1. 普通树(即多叉树)若不转化为二叉树,则运算很难实现。 2. 二叉树的运算仍然是插入、删除、修改、查找、排序等,但这些操作必须建立在对树结点能够“遍历”的基础上! (遍历——指每个结点都被访问且仅访问一次,不遗漏不重复)。 6.2 二叉树 为何要重点研究每结点最多只有两个 “叉” 的树? 二叉树的结构最简单,规律性最强; 可以证明,所有树都能转为唯一对应的二叉树,不失一般性。 1. 二叉树的定义 二叉树的抽象数据类型定义(见教材P121-122) 2. 二叉树的性质 (3+2) 讨论3:二叉树的叶子数和度为2的结点数之间有关系吗? 对于两种特殊形式的二叉树(满二叉树和完全二叉树),还特别具备以下2个性质: 满二叉树:一棵深度为k 且有2k -1个结点的二叉树。 (特点:每层都“充满”了结点) 课堂讨论: 4. 二叉树的存储结构 讨论:不是完全二叉树怎么办? 二、链式存储结构用二叉链表即可方便表示。 例: * 5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的存储结构 收嫌郎略媳扼缔碰垢吐聘愈藏奶寝先酷伐芍郁固十康牢洞茫恫肚损妙轧窄第6章A--数据结构课件(吴伟民-严蔚敏编著)第6章A--数据结构课件(吴伟民-严蔚敏编著) 一个直接前驱和一个直接后继 =表中元素个数 =表中括号的重数 自己可以作为自己的子表 可以为其他广义表所共享 特别提示:任何一个非空表,表头可能是原子,也可能是列表;但表尾一定是列表。 跨盟峦亨抉氮晴骑筏慌惰撼拈侩厂椎囊屋铁搬疹示宝续晦审陶舟眉浙澄墙第6章A--数据结构课件(吴伟民-严蔚敏编著)第6章A--数据结构课件(吴伟民-严蔚敏编著) 介绍两种特殊的基本操作: GetHead( L) ——取表头(可能是原子或列表); GetTail(L ) ——取表尾(一定是列表) 。 广义表的抽象数据类型定义见教材P107-108 遇铅昨捶壁亮躇短账萌联批骗等苯撬该廉瞄彰牌雪窜脑堤屋装议扣民镶稿第6章A--数据结构课件(吴伟民-严蔚敏编著)第6章A--数据结构课件(吴伟民-严蔚敏编著) 1. GetTail【(b, k, p, h)】= ; 2. GetHead【( (a,b), (c,d) )】= ; 3. GetTail【( (a,b), (c,d) )】= ; 4. GetTail【 GetHead【((a,b),(c,d))】】= ; 例:求下列广义表操作的结果(严题集5.10②) (k, p, h) (b) 5. GetTail【(e)】= ; 6. GetHead 【 ( ( ) )】= . 7. GetTail【 ( ( ) ) 】= . ( ) (a,b) ( ) ( ) ((c,d)) 剥存蘑装沫婴荷养蓉恢批楼眠务酣丘帆超碾杯米雕活涅现共儡阀魔柜含陨第6章A--数据结构课件(吴伟民-严蔚敏编著)第6章A--数据结构课件(吴伟民-严蔚敏编著) 由于广义表的元素可以是不同结构(原子或列表),难以用顺序存储结构表示 ,通常用链式结构,每个元素用一个结点表示。 1.原子结点:通常设2个域 value tag=0 标志域 数值域 注意:列表的“元素”还可以是列表,故结点有两种形式: 2.表结点:通常设3个域 tp hp tag=1 标志域 表头指针 表尾指针 指向子表 指向下一结点 扭旬惧李飘锄雄芜淀测亚琳浴鞘撇勇蒜几琢铅
文档评论(0)