23 二叉树操作

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define  NOINFO  -1

typedef struct node
{
    int data;
    struct TNode* L;
    struct TNode* R;
}Node, * PNode;

typedef PNode BinTree;

BinTree  CreatBintree();
bool IsEmpty(BinTree BT);
PreTraverse(BinTree BT);   //先序遍历
//InTraverse(BinTree BT);     //中序遍历
//PosTraverse(BinTree BT);  //中序遍历
//LeTraverse(BinTree BT);  //层序遍历



main() {

    BinTree BTree;
    BTree = CreatBintree();
    IsEmpty(BTree);
    PreTraverse(BTree);


}
BinTree  CreatBintree() {
    int data = NOINFO;

    BinTree BT = (BinTree)malloc(sizeof(Node));
    BT->data = data;
    BT->L = NULL;
    BT->R = NULL;

    return BT;

}

bool IsEmpty(BinTree BT) {
    if (BT->L == NULL && BT->R == NULL)
        return true;
    else
        return false;
}

PreTraverse(BinTree BT) {
    if (IsEmpty(BT))
        printf("BinTree is empty!");
    else
    {
        if (BT) {
            printf("%d", BT->data);
            PreTraverse(BT->L);
            PreTraverse(BT->R);
        }

    }


}

 

posted @ 2020-06-05 20:55  abel2020  阅读(162)  评论(0编辑  收藏  举报