
二叉树怎么写层序遍历 20
#include<stdio.h>#include<stdlib.h>#include<stack>typedefstructBiTNode{chardata;struc...
#include<stdio.h>
#include<stdlib.h>
#include<stack>
typedef struct BiTNode{
char data;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &Tree)
{
char a;
a=getchar();
if(a=='#')
Tree=NULL;
else
{
Tree=(BiTree)malloc(sizeof(BiTNode));
Tree->data=a;
CreatBiTree(Tree->lchild);
CreatBiTree(Tree->rchild);
}
}
void PreOrderTraverse(BiTree Tree)
{
if(Tree!=NULL)
{printf("%4c",Tree->data);
PreOrderTraverse(Tree->lchild);
PreOrderTraverse(Tree->rchild);
}
}
void midorder(BiTree Tree)
{
if(Tree!=NULL)
{
midorder(Tree->lchild);
printf("%4c",Tree->data);
midorder(Tree->rchild);
}
}
void behindorder(BiTree Tree)
{
if(Tree!=NULL)
{
behindorder(Tree->lchild);
behindorder(Tree->rchild);
printf("%4c",Tree->data);
}
}
int Leaf(BiTree Tree)
{
if(Tree==NULL) return 0;
else if(!Tree->lchild&&!Tree->rchild) return 1;
else return (Leaf(Tree->lchild)+Leaf(Tree->rchild));
}
int NodeCount(BiTree Tree)
{
if(Tree==NULL) return 0;
else return (NodeCount(Tree->lchild)+NodeCount(Tree->rchild)+1);
}
在这个程序中加入二叉树的层序遍历,实在做不来层序遍历 展开
#include<stdlib.h>
#include<stack>
typedef struct BiTNode{
char data;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &Tree)
{
char a;
a=getchar();
if(a=='#')
Tree=NULL;
else
{
Tree=(BiTree)malloc(sizeof(BiTNode));
Tree->data=a;
CreatBiTree(Tree->lchild);
CreatBiTree(Tree->rchild);
}
}
void PreOrderTraverse(BiTree Tree)
{
if(Tree!=NULL)
{printf("%4c",Tree->data);
PreOrderTraverse(Tree->lchild);
PreOrderTraverse(Tree->rchild);
}
}
void midorder(BiTree Tree)
{
if(Tree!=NULL)
{
midorder(Tree->lchild);
printf("%4c",Tree->data);
midorder(Tree->rchild);
}
}
void behindorder(BiTree Tree)
{
if(Tree!=NULL)
{
behindorder(Tree->lchild);
behindorder(Tree->rchild);
printf("%4c",Tree->data);
}
}
int Leaf(BiTree Tree)
{
if(Tree==NULL) return 0;
else if(!Tree->lchild&&!Tree->rchild) return 1;
else return (Leaf(Tree->lchild)+Leaf(Tree->rchild));
}
int NodeCount(BiTree Tree)
{
if(Tree==NULL) return 0;
else return (NodeCount(Tree->lchild)+NodeCount(Tree->rchild)+1);
}
在这个程序中加入二叉树的层序遍历,实在做不来层序遍历 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询