目录
一、二叉树的建立
二、二叉树的遍历算法
一、二叉树的建立
CreateBitree(Bitree *t)
{
char c;
scanf("%c",&c);
if(' '==c)
{
*t = NULL;
}
else
{
*t=(Bitnode*)malloc(sizeof(Bitnode));
(*t)->data = c;
CreateBitree(&(*t)->lchild);
CreateBitree(&(*t)->rchild);
}
}
二、二叉树的遍历算法
#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef struct Bitnode
{
char data;
struct Bitnode * lchild ,* rchild;
} Bitnode ,*Bitree;
//创建一个二叉树
CreateBitree(Bitree *t)
{
char c;
scanf("%c",&c);
if(' '==c)
{
*t = NULL;
}
else
{
*t=(Bitnode*)malloc(sizeof(Bitnode));
(*t)->data = c;
CreateBitree(&(*t)->lchild);
CreateBitree(&(*t)->rchild);
}
}
//访问二叉树结点的具体操作
visit(char c,int level)
{
printf("%c 位于第%d层\n",c,level);
}
//遍历二叉树
PreOrderTraverse(Bitree t,int level)
{
if(t)
{
visit(t->data,level);
PreOrderTraverse(t->lchild,level+1);
PreOrderTraverse(t->rchild,level+1);
}
}
int main()
{
int level =1;
Bitree t =NULL;
CreateBitree(&t);
PreOrderTraverse(t,level);
return 0;
}