Tree : Top View

Abstract

做了一道题Tree : Top View。下面是解题报告。

Top View

什么是Top View呢?
在二叉树的父节点,从下看:你能看到的结点的集合即是Top View。
如下图:结点7和13被8挡住了,所以看不到。只能看到 结点4,8,16,20。
在这里插入图片描述
怎么确定结点是否被挡在了呢?如上图的po。我是这样定义的:对与一个结点来说:它的左结点位置为该节点位置减一,右结点的位置为该结点位置加一。然后把根节点的位置设为0。
这样:对树进行遍历:这样就能把树的所有结点的位置确定下来。
这里我选择的是层序遍历:因为其他三种遍历:左数的遍历顺序一定会先于右树。但是层序遍历是一层一层遍历。就好像站队一样,其他三种遍历是直接插入队伍去,这是不对的。



Code:

void topView(Node * root) {
    
        if(root == nullptr)
            return;
        queue<pair<Node*
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值