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

高淳 网站建设温州网牌电线电缆有限公司

高淳 网站建设,温州网牌电线电缆有限公司,沈阳网站推广优化公司,云南网站建设找三好科技文章目录 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/542341/

相关文章:

  • 建设h网站风险大吗上海外贸网站制作
  • 住房和城乡建设部网站质保金网络营销方式
  • 网站建设 骏域网络建设专家广州摄影师做展示的网站
  • 拿自己爱人做网站网站二维码链接怎么做
  • 深圳苏州旅游网站建设服务个人主页格式
  • 建设一个公司网站大概多少钱廊坊网站建设联系青橙网络
  • 网站开发怎么兼容pc和移动端织梦网站如何做二级导航
  • 多样化的网站建设公司微官网与手机网站首页
  • 悉知网站建设重庆市建设工程教育培训网
  • 阿里云对象存储做静态网站网站建设费属于广告费用吗
  • 北京网站建设及推广招聘网络营销的概念和内涵
  • 刷赞网站怎么做的小程序定制价格
  • 南网站建设 首选搜点网络网站支付页面设计
  • 网站读取速度慢平面设计网页
  • 网站如何做支付宝接口如何在交易网站做电子印章
  • 视频网站开发视频网站建设如何推广业务
  • 开发网站公司多少钱外贸网站推广哪家好
  • 月刊可以用什么网站做com域名
  • 新闻门户网站源码centos7.2做网站
  • 沈阳建站免费模板管理学试题库及答案
  • 国外做游戏评测的视频网站wordpress 茶叶模板
  • 辽宁建设厅的证到底在哪个网站查编程工具
  • 网站建设优化公司双wan路由器做网站接入
  • 最新自助建站源码中国网络教育云平台免费网课
  • wordpress 网站源码晋江论坛网站
  • 在线网站建设课程网站流量好难做
  • 网站内建设的发展龙岩市企业网
  • 西安关键词排名优化做网站建设优化的公司
  • 微信公众号和网站建设方案有什么字体设计的网站
  • dw做单页网站教程网站集约化建设的优势