C++创建二叉树及操作Word格式.docx

上传人:b****1 文档编号:13525331 上传时间:2022-10-11 格式:DOCX 页数:8 大小:15.31KB
下载 相关 举报
C++创建二叉树及操作Word格式.docx_第1页
第1页 / 共8页
C++创建二叉树及操作Word格式.docx_第2页
第2页 / 共8页
C++创建二叉树及操作Word格式.docx_第3页
第3页 / 共8页
C++创建二叉树及操作Word格式.docx_第4页
第4页 / 共8页
C++创建二叉树及操作Word格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C++创建二叉树及操作Word格式.docx

《C++创建二叉树及操作Word格式.docx》由会员分享,可在线阅读,更多相关《C++创建二叉树及操作Word格式.docx(8页珍藏版)》请在冰豆网上搜索。

C++创建二叉树及操作Word格式.docx

ElemTypech;

cin>

>

ch;

if(ch=='

#'

T=NULL;

else

{

if(!

(T=newBiTreeNode))

exit(OVERFLOW);

T->

data=ch;

//生成根结点

CreateBiTree(T->

lchild);

//构造左子树

rchild);

//构造右子树

}

}//CreateBiTree

voidPreOrder(BiTree&

T)//递归函数:

先序遍历以T为根的二叉树。

if(T!

=NULL)//递归结束条件

cout<

<

T->

data<

"

"

;

//访问根结点

PreOrder(T->

//先序遍历根的左子树

//先序遍历根的右子树

}

}

voidInOrder(BiTree&

中序次序遍历以T为根的子树。

=NULL)//NULL是递归终止条件

InOrder(T->

//中序遍历根的左子树

cout<

//访问根结点

//中序遍历根的右子树

voidPostOrder(BiTree&

后序次序遍历以T为根的子树。

PostOrder(T->

//后序遍历根的左子树

//后序遍历根的右子树

voidLevelOrder(BiTreeT)//层序遍历

BiTreeQ[MaxLength];

intfront=0,rear=0;

BiTreep;

if(T)//根结点入队

Q[rear]=T;

rear=(rear+1)%MaxLength;

while(front!

=rear)

{

p=Q[front];

//队头元素出队

front=(front+1)%MaxLength;

p->

if(p->

lchild)//左孩子不为空,入队

{

Q[rear]=p->

lchild;

rear=(rear+1)%MaxLength;

}

rchild)//右孩子不为空,入队

rchild;

boolComplete(BiTreeT)

if(T==NULL)//根结点入队

returntrue;

while(front!

p=Q[front];

front=(front+1)%MaxLength;

if(p)

{

Q[rear]=p->

rear=(rear+1)%MaxLength;

}

else

{

while(front!

{

p=Q[front];

if(p)

{

returnfalse;

}

else

returntrue;

}

}

intDepth(BiTreeT)

intdepthval,depthleft,depthright;

if(!

T)

depthval=0;

depthleft=Depth(T->

depthright=Depth(T->

depthval=1+(depthleft>

depthright?

depthleft:

depthright);

returndepthval;

intCountleaf(BiTreeT)

intm,n;

return0;

lchild&

&

!

rchild)

return1;

m=Countleaf(T->

n=Countleaf(T->

return(m+n);

intCountleafs(BiTreeT)

m=Countleafs(T->

n=Countleafs(T->

return(m+n+1);

BiTree.cpp文件

#include"

BiTree.h"

voidmain()

MadebyFly!

!

~~"

endl;

请输入二叉树序列,如:

AB#C##D##"

BiTreetree;

CreateBiTree(tree);

二叉树创建完成!

先序遍历二叉树输出结果:

PreOrder(tree);

中序遍历二叉树输出结果:

InOrder(tree);

后序遍历二叉树输出结果:

PostOrder(tree);

层次遍历二叉树输出结果:

LevelOrder(tree);

层次遍历二叉树判定是否为完全二叉树:

boolt=Complete(tree);

if(t)

此二叉树是完全二叉树。

此二叉树不是完全二叉树。

此二叉树的深度为:

intm=Depth(tree);

m<

此二叉树的总结点个数为:

intn=Countleafs(tree);

n<

此二叉树的叶子结点个数为:

inta=Countleaf(tree);

a<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1