二叉树的集合操作,第1张

二叉树的集合操作,第2张

前段时间写了一个关于链表的集合操作,可以对链表、栈、队列进行重复的基本操作,对链表进行了深入的分析。这次我花了一些时间写了一个关于二叉树的集合运算程序,它的主要功能是创建一个二叉树,通过首根遍历、中根遍历、跟随遍历等多种方式遍历我们创建的二叉树,并且可以随时显示我们二叉树的直观结构,打印出我们的叶节点,可以随时释放我们已经为二叉树创建的节点空, 然后自动提示我们构造一个新的二叉树,可以随时启动我们当前的程序,在当前程序结束时自动释放我们所有的节点空。

同时这个程序的自动纠错功能也很不错,可以纠正我们容易忽略的常见错误,实现实时检查功能。

这个程序是我自己精心设计调试的。如果你不熟悉二叉树的概念和操作,我想,通过仔细研究这个程序,你就能消除你头脑中所有的疑惑。

本着给大家解释清楚,不留疑点,不留疑问的原则,我特意附上一份详细的实验分析报告。仔细对比这份报告,结合源程序,就一定能把二叉树的关键技术说清楚!

如果这个程序有什么问题或者有什么好的建议,请联系我。我的联系方式是:

QQ: 37170732电子邮箱:owenstone@sina.com.cn

欢迎各位热爱Windows编程和MFC编程的朋友加入我的行列!

-以下是程序的代码部分-

#包括

#包括

#包括

#定义NULL 0

#定义数据类型字符

typedef struct BinTreeNode * pbintrenode;

typedef PBinTreeNode * PBinTree

结构BinTreeNode

{数据类型信息;

PBinTreeNode llink

PBinTreeNode rlink

};

pbintrenode Create _ BinTree(void);

pbin tree Create _ bintree root(void)

{ PBinTree pbtree

Pb tree =(pbin tree)malloc(sizeof(struct BinTreeNode));

if(Pb tree = = NULL)Pb tree =(PBinTree)realloc(Pb tree,sizeof(struct BinTreeNode));

* Pb tree = Create _ BinTree();

return(Pb tree);

}

pbintrenode Create _ BinTreeNode(void)

{ PBinTreeNode pbnode

Pb node =(PBinTreeNode)malloc(sizeof(struct BinTreeNode));

if(Pb node = = NULL)Pb node =(PBinTreeNode)realloc(Pb node,sizeof(struct BinTreeNode));

else Pb node-> llink = Pb node-> rlink =(PBinTreeNode)NULL;

return(Pb node);

}

int isalphabet(char i)

{

if (i >= 'a' && i = 'A' && i返回1;

否则返回0;

}

pbintrenode Create _ BinTree(void)

{ PBinTreeNode pbnode

数据类型I;

printf("请输入一个char:\ t ");

fflush(stdin);

scanf("%c ",& I);

fflush(stdin);

而(!isalphabet(i))

{

printf("对不起,您输入的字符不是字母表,请重新输入:");

scanf("%c ",& I);

fflush(stdin);

}

if(I = = ' @ ')Pb node = NULL;

其他

{

Pb node =(PBinTreeNode)malloc(sizeof(struct BinTreeNode));

if(pbnode == NULL)

{

printf("空间不足!\ n ");

返回pbnode

}

Pb node-> info = I;

Pb node-> llink = Create _ BinTree();

Pb node-> rlink = Create _ BinTree();

}

返回pbnode

}

void output tree(PBinTreeNode Pb node,int totalSpace)

{ int I;

if(pbnode!=空)

{

total space+= 5;

outputTree(pbnode->rlink,total space);

for(I = 0;i printf("%c\n ",Pb node-> info);

outputTree(pbnode->llink,total space);

}

}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二叉树的集合操作

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情