// 1.构建二叉树。<先序>
// 2. 先中后 序遍历二叉树 <中,非递归>
// 3.独生子女的个数。
// 4.二叉树的深度。
#include<cstdio>
#include<cstdlib>
#define OK 1
#define OVERFLOW -2
#define ERROR 0
#define MAX 20
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
int GreateBiTree(BiTree &T) // 1 先序构建二叉树
{
char ch;
scanf("%c",&ch);
if(ch=='#') T=NULL;
else
{
if(!(T = (BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data = ch;
GreateBiTree(T->lchild);
GreateBiTree(T->rchild);
}
return OK;
} // GreateBiTree
void PreOrder(BiTree T) // 2.1 /*先序遍历的非递归算法*/
{
BiTree stack[MAX],q;
int top=0,i;
for(i=0;i<MAX;i++) stack[i]=NULL;/*初始化*/
q=T;
while(q!=NULL)
{
printf("%c",q->data);
if(q-
二叉树实验5
最新推荐文章于 2021-05-18 12:00:13 发布
这篇博客主要介绍了如何通过先序构建二叉树,并提供了非递归的先序、中序和后序遍历二叉树的算法。此外,还讲解了计算二叉树中独生子女节点个数和求解树的深度的方法。
摘要由CSDN通过智能技术生成