文章

77

粉丝

9

获赞

2

访问

7.6k

头像
【2022年】408计算机统考真题模拟考试 - 第41题答案笔记
数据结构
发布于2024年11月7日 16:08
阅读数 118

计算机考研408统考历年真题及答案解析

1)下标从1开始,第i个结点的左结点为2i,右结点为2i+1,按照此规律,通过树的前序遍历,判断左结点是否小于当前结点,右结点是否大于当前结点;碰到-1直接跳过并返回该层递归,碰到不满足判断的结点直接返回false;如果遍历完都没有返回false则最终函数返回true

2)

bool isRight=false;

bool Function(SqBiTree T) {
   isRight = false;
   InOrder(T, 0);
   return isRight;

}

void InOrder(SqBiTree T, int index) {
    if (index>=T.ElemNum || T[index] == -1) return;
    if (2*index+1<T.ElemNum && T[2*index+1]!=-1 && T[2*index+1]>T[index]) {
        isRight= false;
        return;
    }
    if (2*index+2<T.ElemNum && T[2*index+2]!=-1 && T[2*index+2]<T[index]) {
        isRight= false;
        return;
    }
    InOrder(T, 2*index+1);
    InOrder(T, 2*index+2);
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发