当前位置: 首页 > news >正文

高埗仿做网站大连网站制作赞ls15227

高埗仿做网站,大连网站制作赞ls15227,网站挂马 屏蔽站长的ip,WordPress图片无缝文章目录 1. 题目描述2. 我的尝试 1. 题目描述 给定一颗二叉树,树的每个节点的值为一个正整数。如果从根节点到节点 N 的路径上不存在比节点 N 的值大的节点,那么节点 N 被认为是树上的关键节点。求树上所有的关键节点的个数。请写出程序,并…

文章目录

  • 1. 题目描述
  • 2. 我的尝试

1. 题目描述

给定一颗二叉树,树的每个节点的值为一个正整数。如果从根节点到节点 N 的路径上不存在比节点 N 的值大的节点,那么节点 N 被认为是树上的关键节点。求树上所有的关键节点的个数。请写出程序,并解释解题思路。
在这里插入图片描述

输入:3, 1, 4, 3, null, 1, 5
输出:4(图中蓝色节点是关键节点)

2. 我的尝试

这道题麻烦的地方在于输入与建树。由题意可知,输入数据是以完全二叉树形式进行输入的,因此可以考虑直接用数组来存储树,然后再遍历每一个节点并判断其是否为关键节点。

数据的输入是以空格作为分隔符的,因此不适宜直接用 cin进行读入。可以用 getline 函数读入整行,再对读入的字符串遍历进行处理。

#include <bits/stdc++.h>using namespace std;int main() {string str;    // 存储输入的字符串int val = 0;   // 用于计算当前输入节点的值vector<int> tree;int cnt = 0;getline(cin, str);int n = str.size();// 建树for (int i = 0; i < n; i ++) {auto c = str[i];if ('0' <= c && c <= '9') {val = val * 10 + c - '0';} else if (val) {tree.push_back(val);val = 0;} else if (c == 'n') {tree.push_back(-1);}}tree.push_back(val);n = tree.size();// 对除根节点外所有节点遍历,将其与各祖先节点比较,判断是否为关键节点for (int i = 0; i < n && tree[i] != -1; i ++) {int val = tree[i]; bool flag = true;for (int p = (i - 1) / 2; p >= 0; p = (p - 1) / 2) {if (tree[p] > val) flag = false;if (p == 0) break;}if (flag) cnt ++;}// 根节点一定为关键节点,直接加1cnt ++;cout << cnt;
}
http://www.yayakq.cn/news/253331/

相关文章:

  • 浙江省邮电工程建设有限公司 网站如何建立自己的平台
  • 建设网站的风险正规的培训学校
  • 网站建设交印花税吗微信营销方式有哪些
  • 图片展示类网站百度收录
  • 湖北黄石网站建设python 做网站 案例
  • 宁夏网站建设优化王烨萌 俄罗斯
  • 建材网站方案班级网站 模板
  • 做外贸网站注册什么邮箱鞋材 技术支持 东莞网站建设
  • 如何用dede做带下单的网站织梦汽车网站模板免费下载
  • 网站设计师专业做一个网站要花多少钱
  • 网站开发接口文档模板文字游戏做的最好的网站
  • 济南免费网站建站模板贵阳网站seo
  • 上海网站分站建设新网网站备案流程
  • 烟台企业做网站网络舆情监测中心具体做什么
  • 网站怎样做移动端适配网页设计总结5000字
  • 表白网页制作免费网站制作苏州吴中区做网站的
  • 做直播网站需要证书吗做律师咨询网站
  • 华为做网站吗中国食品加工网
  • 烟台网站公司医疗设备响应式网站
  • 手游网站建设的宗旨网站策划书包括哪几个步骤
  • 苏州网站建设搭建注册公司流程和费用公司注册
  • 济南建网站公司价格小红书推广营销
  • 网站开发的学习路线达州网站建设
  • 湖州建设局投标网站推广普通话绘画
  • 庐江县建设局网站合肥霍山路网站建设
  • 公司网站备案有什么用wordpress更多
  • 旅游网站制作文献世界各国黄页
  • 网站开发需要做什么河北做网站公司
  • 北京华夏建设有限公司网站天津建设信息工程
  • 上海专门做培训的网站网站快速收录