PTA 6-2 二叉树的遍历(25 分) 25分代码 (数组实现层次遍历)

前三个 中序 先序 后序遍历直接递归就可以了

最后一个层次遍历 可以把每一层 用数组存起来,容易实现


(注: 博客作为交流使用,请勿抄袭应付作业)


/* 你的代码将被嵌在这里 */

void InorderTraversal( BinTree BT ) {
    if(BT == NULL) return;
    InorderTraversal(BT->Left);
    printf(" %c", BT->Data);
    InorderTraversal(BT->Right);
}
void PreorderTraversal( BinTree BT ) {
    if(BT == NULL) return;
    printf(" %c", BT->Data);
    PreorderTraversal(BT->Left);
    PreorderTraversal(BT->Right);
}
void PostorderTraversal( BinTree BT ) {
    if(BT == NULL) return;
    PostorderTraversal(BT->Left);
    PostorderTraversal(BT->Right);
    printf(" %c", BT->Data);
}

BinTree aa[10000], bb[10000];
int a, b;

#include<string.h>
void print() {
    memset(bb, NULL, sizeof bb);
    b = 0;
    for(int i = 0; i < a; ++i) {
        if(aa[i] != NULL) printf(" %c", aa[i]->Data);
        if(aa[i]->Left != NULL) bb[b++] = aa[i]->Left;
        if(aa[i]->Right != NULL) bb[b++] = aa[i]->Right;
    }
    a = b;
    for(int i = 0; i < b; ++i)
        aa[i] = bb[i];
}

void LevelorderTraversal( BinTree BT ) {
    if(BT == NULL) return;
    a = 1; b = 0;
    aa[0] = BT;
    while(a) print();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值