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

满树的遍历--题解

题干:

考察多叉树的遍历

主要实现的功能:

  1. 根据输入的父节点关系构建一棵树
  2. 计算树的度(最大子节点数)
  3. 判断是否是k阶满树(所有非叶子节点的子节点数都相等)
  4. 输出前序遍历序列

具体代码实现如下:

#include<bits/stdc++.h> using namespace std; vector<int>g[100010]; // 邻接表存储树,g[i]存储节点i的所有子节点 int root; // 根节点编号 int maxdegree; // 树的度(最大子节点数) bool kflg=0; // 标志位:0表示是满树,1表示不是满树 vector<int>pre; // 存储前序遍历结果 // 深度优先搜索(前序遍历) void dfs(int ver){ // 判断当前节点是否违反满树条件 // 条件:如果当前节点不是叶子节点(g[ver].size()!=0) // 并且它的子节点数不等于最大度(g[ver].size()!=maxdegree) if(g[ver].size()!=0 && g[ver].size()!=maxdegree){ kflg=1; // 标记为不是满树 // 更新最大度(这行逻辑有问题,后面分析) maxdegree=max(maxdegree,(int)g[ver].size()); } pre.push_back(ver); // 前序遍历:先访问根节点 // 递归访问所有子节点 // 注意:这里没有对子节点排序,但题目要求兄弟节点按编号升序排列 for(int i=0;i<g[ver].size();i++){dfs(g[ver][i]);}return;}intmain(){intn;cin>>n; // 输入节点个数 // 构建树结构 for(int i=1;i<=n;i++){ int x; cin>>x; // 输入第i个节点的父节点编号 if(x==0) root=i; // 如果父节点为0,则i是根节点 else g[x].push_back(i); // 否则将i加入x的子节点列表 } // 初始化最大度:至少包含根节点的子节点数 maxdegree=max(maxdegree,(int)g[root].size()); dfs(root); // 从根节点开始前序遍历 // 输出树的度 cout<<maxdegree<<' '; // 输出是否是满树 if(kflg==0) cout<<"yes\n"; else cout<<"no\n"; // 输出前序遍历序列 for(int i=0;i<pre.size();i++){ if(i) cout<<" "; cout<<pre[i]; } return 0; }
http://www.jsqmd.com/news/483971/

相关文章:

  • 90天蜕变!我的大模型入门项目管理计划,保姆级教程免费送!一个普通人的90天学习路线图
  • 机器学习34:元学习(Meta Learning)
  • c++问题:free (): double free detected in tcache
  • 小程序毕业设计-基于微信小程序的在线学习在线课程系统的设计与实现
  • spring框架的主要几个依赖
  • 8:《死亡笔记》历史必然性:私人执法者在法律崩溃时的永恒规律(从罗马到现代义警)
  • 1949 AI:轻量化智能工具的应用优势与实践价值
  • 电力系统调频控制技术与仿真建模实践
  • 2026 年南宁物业律师口碑榜出炉,哪家强?
  • 用这个办法修复扬声器----------JAMO低音炮喇叭维修小记
  • 计算机毕业设计ssm小型养猪场信息化管理系统 基于SSM框架的小型养猪场智能化管理系统开发 SSM架构下的小型养猪场数字化管理平台设计
  • 冒泡,选择,插入排序再学习
  • iOS 上架 4.3a 被拒【uniapp专讲】​
  • linux——目录及文件操作
  • 经典的openclaw提示词注入
  • 【全网首家】·openclaw开发的GEO优化系统|小龙虾GEO系统|小龙虾专属GEO优化助理
  • vscode, wsl 使用claude code
  • 一套全方位零售数字化经营系统:技术解析与业务赋能
  • 对一些主流模型的结构解析(pt/onnx/openvino/gguf)
  • 三个F数,像空间F数,近轴工作F数以及工作F数
  • 拒绝上下文自残:用数据库硬刚 AI Agent 的健忘症
  • 设备预测性维护服务商选择的关键维度
  • 模型预测控制专题(八)—— 带宽参数影响分析
  • 2026年中国企业健身房规划公司白皮书:综合竞争力评估
  • OpenClaw+Docker+KWDB3.1
  • 亚亿讯Rs6Pro路由器刷机派通云、麻雀云教程
  • 二叉树最近公共祖先问题
  • 让 AI 用自然语言操控三维地球 – Cesium MCP 开源实践
  • 【无标题】java初学者敲得学生管理系统,呜呜呜太难了,敲了1.5个小时
  • Java Set 集合深度解析(HashSet / TreeSet 原理详解)