二叉树操作

来源:互联网 发布:什么游戏不要网络也能玩 编辑:程序博客网 时间:2024/05/29 07:06

程序代码:

#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;}

代码结果:
这里写图片描述

0 0