网站大量收购独家精品文档,联系QQ:2885784924

d树和森林的概念.pptVIP

  1. 1、本文档共113页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

树和森林的概念

二叉树

二叉树的表示

二叉树遍历及其应用

线索化二叉树

树与森林

Huffman树;树和森林的概念;自由树;r是一个特定的称为根(root)的结点,它只有直接后继,但没有直接前驱;

根以外的其他结点划分为m(m?0)个互不相交的有限集合T1,T2,…,Tm,每个集合又是一棵树,并且称之为根的子树。

每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。;树的示意图(P.187);树的特点;;templateclassTypeclassTree{

public:

Tree();

~Tree();

positionRoot();

BuildRoot(constTypevalue);

positionFirstChild(positionp);

positionNextSibling(positionp);

positionParent(positionp);

TypeGetData(positionp);

intInsertChild(constpositionp,

constTypevalue);

intDeleteChild(positionp,inti);

};一棵二叉树是??点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。;;性质1若二叉树的层次从1开始,则在二叉树的第i层最多有2i-1个结点。(i≥1)

;性质3对任何一棵二叉树,如果其叶结点有n0个,度为2的非叶结点有n2个,则有

n0=n2+1

;定义1满二叉树(FullBinaryTree)

如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上,则称这类二叉树为满二叉树。

;;;性质5如将一棵有n个结点的完全二叉树自顶向下,同一层自左向右连续给结点编号1,2,…,n,则有以下关系:

(1)若i==1,则i为根,无双亲

若i1,则i的双亲为?i/2?

(2)若n=2*i,则结点i的左子女为2*i;

(3)若n=2*i+1,则结点i的右子女为2*i+1

;(4)若结点编号i为奇数,且i!=1,则它的左兄弟为结点i-1。

(5)若结点编号i为偶数,且i!=n,则它的右兄弟为结点i+1。

(6)结点i所在层次为?log2i?+1

;templateclassTypeclassBinaryTree{

public:

BinaryTree(); //构造函数

BinaryTree(BinTreeNodeType*lch,

BinTreeNodeType*rch,Typeitem);

//构造以item为根,lch和rch为左、右

//子树的二叉树

intIsEmpty(); //判二叉树空否?

BinTreeNodeType*Parent();//双亲;BinTreeNodeType*LeftChild();

//取左子女结点地址

BinTreeNodeType*RightChild();

//取右子女结点地址

intInsert(constTypeitem);//插入

intFind(constTypeitem)const;//搜索

TypeGetData()const;//取得结点数据

BinTreeNodeType*GetRoot()const;

//取根结点地址

};;;;;;二叉树链表表示的示例;二叉链表的静态结构;templateclassTypeclassBinaryTree;

templateclassTypeClassBinTreeNode{

friendclassBinary

文档评论(0)

mend45 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档