二叉树的集合操作
前段时间写了一个关于链表的集合操作,可以对链表、栈、队列进行重复的基本操作,对链表进行了深入的分析。这次我花了一些时间写了一个关于二叉树的集合运算程序,它的主要功能是创建一个二叉树,通过首根遍历、中根遍历、跟随遍历等多种方式遍历我们创建的二叉树,并且可以随时显示我们二叉树的直观结构,打印出我们的叶节点,可以随时释放我们已经为二叉树创建的节点空, 然后自动提示我们构造一个新的二叉树,可以随时启动我们当前的程序,在当前程序结束时自动释放我们所有的节点空。
同时这个程序的自动纠错功能也很不错,可以纠正我们容易忽略的常见错误,实现实时检查功能。
这个程序是我自己精心设计调试的。如果你不熟悉二叉树的概念和操作,我想,通过仔细研究这个程序,你就能消除你头脑中所有的疑惑。
本着给大家解释清楚,不留疑点,不留疑问的原则,我特意附上一份详细的实验分析报告。仔细对比这份报告,结合源程序,就一定能把二叉树的关键技术说清楚!
如果这个程序有什么问题或者有什么好的建议,请联系我。我的联系方式是:
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);
}
}
0条评论