二叉树的遍历
二叉树
二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a); (2)只有一个根结点的二叉树——(b); (3)右子树为空的二叉树——(c); (4)左子树为空的二叉树——(d); (5)完全二叉树——(e)注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。(来自百度百科)
二叉树的遍历:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<debug.h>
typedef struct Bitree
{
Bitree *rchild,*lchild;
int data;
}Bitree,*BT;
BT T;
int Creattree(BT &T )
{
int n;
scanf("%d",&n);
if(n==-1)
T=NULL;
else
{
T=new Bitree;
T->data=n;
Creattree(T->lchild);
Creattree(T->rchild);
}
return 0;
}
void preordertraverse(BT T )
{
if(T)
{
printf("%d ",T->data);
preordertraverse(T->lchild);
preordertraverse(T->rchild);
}
}
void inordertraverse(BT T)
{
if(T)
{
inordertraverse(T->lchild);
printf("%d ",T->data);
inordertraverse(T->rchild);
}
}
void postordertraverse(BT T )
{
if(T)
{
postordertraverse(T->lchild);
postordertraverse(T->rchild);
printf("%d ",T->data);
}
}
int main( )
{
// BT *T;
Debug();
Creattree(T);
printf("\n*******\n");
preordertraverse(T);
printf("\n*************\n");
inordertraverse(T);
printf("\n*************\n");
postordertraverse(T);
system("pause");
return 0;
}
posted on 2011-04-15 22:07 more think, more gains 阅读(204) 评论(0) 收藏 举报
浙公网安备 33010602011771号