1 / 3
文档名称:

二叉树的递归遍历.doc

格式:doc   大小:28KB   页数:3
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

二叉树的递归遍历.doc

上传人:zbfc1172 2018/6/28 文件大小:28 KB

下载得到文件列表

二叉树的递归遍历.doc

相关文档

文档介绍

文档介绍:#include<>
#include<>
#define OVERFLOW -1
typedef struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void visit(char ch)
{
printf("%5c",ch);
}
void CreateBiTree(BiTree &T)
{
char ch ;
scanf("%c",&ch);
if(ch==' ') T=NULL;
else
{
T=(BiTree)malloc(sizeof(BiTNode));
if(!T) exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T,void(*Visit)(char))
{
if(T)
{
Visit(T->data);
PreOrderTraverse(T->lchild,Visit);
PreOrderTraverse(T->rchild,Visit);
}
}
void InOrderTraverse(BiTree T,void(*Visit)(char))
{
if(T)
{
InOrderTraverse(T->lchild,Visit);
Visit(T->data);
InOrderTraverse(T->rchild,Visit);
}
}
void PostOrderTraverse(BiTree T,void(*Visit)(char))
{
if(T)
{ PostOrderTraverse(T->lchild,Visit);
PostOrderTraverse(T->rchild,Visit);
Visit(T->data);
}
}
int sum(BiTree T)
{
int m,n;
if(!T) return 0;
else
/*{
m=sum(T->lchild);
n=sum(T->rchild);
return m+n+1;
}*/

return sum(T->lchild)+sum(T->rchild)+1;
}
int Depth(BiTree T)
{
int m,n;
if(!T) return 0;
else
{
m=Depth(T->lch