文章

11

粉丝

216

获赞

4

访问

102.8k

头像
把二叉树当成满二叉树处理,每层进行对称判断,不需要构造二叉树
P1551 东北大学机试题
发布于2021年2月24日 21:18
阅读数 9.2k

 

#include<iostream>
#include<queue>
#include<vector>
#include<string>

using namespace std;
string s;

//k , l 为该层起始下标
bool symmetry(int k, int l)
{
    while (k <= l)
    {
        if ( (s[k] == '#' && s[l] != '#') ||\
             (s[k] != '#' && s[l] == '#') )
            return false;

        k++;
        l--;
    }

    return true;
}
int main()
{

    int level, total , num;

    while (cin >> s)
    {
        int len = s.size();
        num = 1;      //记录当前层结点数;
        level = 1;
        total = 0;    //用于记录前边遍历的层的结点总数;
        while (len > total)       //下一层有结点;
        {
            //补全成为满二叉树
            if (len < num + total)
            {
                for (int i = len ; i < num + total; i++)
                {
                    s += '#';
                }
                len = s.size();
            }

            int k = total;
            int l = tot...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发