程序代码:
#include"stdio.h"
#include"stdlib.h"
#include<iostream>
using namespace std;
typedef struct node{//定义一个二叉树结点
int data;
struct node*lchild, *rchild;
}binode,*bitree;
void creatbitree(bitree*t)//创建一棵二叉树
{
int a;
cin >> a;
if (a ==0)
*t = NULL;
else
{
*t = (bitree)malloc(sizeof(binode));
(*t)->data = a;
creatbitree(&((*t)->lchild));//递归调用
creatbitree(&((*t)->rchild));
}
}
void visit(int c, int level)
{
if (c == 4)
printf("%d is at the %d level of bitree\n",c,level);
}
void preorderbitree(bitree t, int level)//先序遍历二叉树
{
if (t)
{
visit(t->data, level);
preorderbitree(t->lchild, level + 1);//先序遍历左子树
preorderbitree(t->rchild, level + 1);//先序遍历右子树
}
}
int main()
{
int level = 1;
bitree t;
creatbitree(&t);
preorderbitree(t, level);
system("pause");
return 0;
}
代码结果: