二叉树建立及遍历 C++ 源码

#define _CRT_SECURE_NO_WARNINGS
 
#include<iostream>
#include <stdlib.h>
 
using namespace std;
 
#define FRONT 1  
#define MIDDLE 2  
#define BACK 3  
 
typedef struct BiNode {
    char content;
    struct BiNode *left;
    struct BiNode *right;
}BiNode, *BiTree;
 
void CreateBiTree(BiTree *T) {
    char receive;
    //scanf("%c", &receive);
    cin >> receive; 
    if (receive == '*') {
        // cout << "-";
        *T = NULL;
    }
    else {
        // cout << receive;
        *T = (BiTree)malloc(sizeof(BiNode));
        (*T)->content = receive;
        CreateBiTree(&(*T)->left);
        CreateBiTree(&(*T)->right);
    }
}
 
void show(BiTree *T, int TYPE) {
    if (*T == NULL) {
        cout << "*";
    }
    else {
        switch (TYPE) {
            case FRONT:
                cout << (*T)->content ;
                show(&(*T)->left, TYPE);
                show(&(*T)->right, TYPE);
                break;
            case MIDDLE:
                show(&(*T)->left, TYPE);
                cout << (*T)->content;
                show(&(*T)->right, TYPE);
                break;
            case BACK:
                show(&(*T)->left, TYPE);
                show(&(*T)->right, TYPE);
                cout << (*T)->content;
                break;
        }
    }
}
 
int main() {
    BiTree tree ;
    CreateBiTree(&tree);
    
    cout << endl;
    show(&tree, 1);
 
    system("pause");
    return 0;
}

 

转载于:https://www.cnblogs.com/xiaoniu-666/p/9272141.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值