- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实例;五子棋游戏;/ (root); 树是一类重要的非线性数据结构,是以分支关系定义的层次结构;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;A;ADT Tree
{ 数据对象D: D是具有相同特性的数据元素的集合
数据关系R: 若D为空集,则称为空树
否则:
(1) 在D中存在唯一的称为根的数据元素root;
(2) 当n1时,其余结点可分为m (m0)个互不相交的
有限集T1, T2, …, Tm,其中每一棵子集本身又是
一棵符合本定义的树,称为根root的子树
基本操作:
查找类操作
插入类操作
删除类操作
} ADT Tree;基本操作:;LeftChild(T, cur_e)初始条件:树T已存在,cur_e是T中结点
操作结果:若cur_e是T中非叶子结点,返回其最左孩子;否则,返回空;插入类:;DeleteChild(T, p,i)初始条件:树T存在,p指向T中结点,1≤i ≤ p指结点度
操作结果:删除T中p指结点的第i棵子树;结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支
结点的度(degree)——结点拥有的子树数
叶子(leaf)——度为0的结点,终端结点
分支结点——度不为0的结点,非终端结点
孩子(child)——结点子树的根称为该结点的孩子
双亲(parents)——孩子结点的上层结点叫该结点的~
兄弟(sibling)——同一双亲的孩子
树的度——一棵树中最大的结点度数
结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层……
深度(depth)——树中结点的最大层次数,高度
森林(forest)——m(m?0)棵互不相交的树的集合
有序树——各子树从左至右有次序,不能互换
无序树——子树之间不存在确定的次序关系;结点A的度:
结点B的度:
结点M的度:;G;定义:二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成
特点
每个结点至多有二棵子树(即不存在度大于2的结点)
二叉树的子树有左、右之分,且其次序不能任意颠倒
基本形态;ADT BinaryTree
{ 数据对象D: D是具有相同特性的数据元素的集合
数据关系R: 若D为空集,则称为空树
否则:
(1) 在D中存在唯一的称为根的数据元素root;
(2) 当n1时,由一个根结点和两棵分别称为左子树和
右子树的互不相交的二叉树构成
基本操作:
查找类操作
插入类操作
删除类操作
} ADT BinaryTree;BiTreeEmpty(T)初始条件:二叉树T已存在操作结果:空二叉树,返回 TRUE;否则 FALSE;LeftChild(T, e)初始条件:二叉树T已存在, e是T中结点
操作结果:若e是T中非叶子结点,返回其最左孩子;否则,返回空;PreOrderTraverse(T, visit())
初始条件:二叉树T已存在操作结果:先序遍历二叉树T;插入类:;DeleteChild(T, p,LR)初始条件:树T存在,p指向T中结点,LR为0或1
操作结果:删除T中p指结点的左或右子树;性质1:;性质3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1;
满二叉树
定义:;
完全二叉树
定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为~
特点
叶子结点只可能在层次最大的两层上出现
对任一结点,若其右分支下子孙的最大层次为L,则其左分支下子孙的最大层次必为L 或L+1;1;性质5:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1?i?n),有:
(1)如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是?i/2?
(2)如果2in,则结点i无左孩子;如果2i?n,则其左孩子是2i
(3)如果2i+1n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1;树与二叉树的存储结构及其相互转换;双亲表示法
实
文档评论(0)