文章

1

粉丝

0

获赞

0

访问

6104

头像
二叉树的建立和遍历
数据结构
发布于2021年5月22日 16:55
阅读数 6104

#include <bits/stdc++.h>

using namespace std;

typedef struct node{
    char data;
    struct node *lchild,*rchild;
}*BitTree;

void CreateBitTree(BitTree &T)
{
    char c;
    cin >> c;
    if(c=='0') T = NULL;
    else{
        T = new node;
        T->data = c;
        CreateBitTree(T->lchild);
        CreateBitTree(T->rchild);
    }
}

void Inorder(BitTree T)
{
    if(T!=NULL){
        Inorder(T->lchild);
        cout << T->data << ' ';
        Inorder(T->rchild);
    }
}

void Preorder(BitTree T)
{
    if(T!=NULL){
        cout << T->data << ' ';
        Preorder(T->lchild);
        Preorder(T->rchild);
    }
}

void Postorder(BitTree T)
{
    if(T!=NULL){
        Postorder(T->lchild);
        Postorder(T->rchild);
        cout << T->data << ' ';
    }
}

int Leaf(BitTree T)
{
    if(T==NULL) return 0;
    if(T->lchild==NULL && T->rchild==NULL) return 1;
    return Leaf(T->lchild)+Leaf(T->rchild);
}

int Depth(BitTree T)
{
    if(T==NULL) return 0;
    int l = Depth(T->lchild);
    int r = Depth(T->rchild);
    return max(l,r)+1;
}

int main()
{
    BitTree T;
    CreateBitTree(T);
    Preorder(T); cout<<endl;
    Inorder(T); cout<<endl;
    Postorder(T); cout<<endl;
    cout << Leaf(T) << endl;
    cout << Depth(T) <<endl;
    return 0;
}



登录后发布评论

1 条评论
finnian
2021年7月17日 19:30

发现神仙网站

 

赞(0)