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

C++:构建一个二叉树的代码

​#include <iostream>// 定义二叉树节点
struct BinaryTreeNode {int data;BinaryTreeNode* left;BinaryTreeNode* right;BinaryTreeNode(int val) : data(val), left(nullptr), right(nullptr) {}
};// 构建二叉树
BinaryTreeNode* buildBinaryTree() {int val;std::cin >> val;if (val == -1) { // 如果输入-1则表示该节点为空return nullptr;}BinaryTreeNode* node = new BinaryTreeNode(val);node->left = buildBinaryTree();node->right = buildBinaryTree();return node;
}// 中序遍历输出二叉树节点值
void printBinaryTreeInOrder(BinaryTreeNode* node) {if (node != nullptr) {printBinaryTreeInOrder(node->left);std::cout << node->data << " ";printBinaryTreeInOrder(node->right);}
}int main() {BinaryTreeNode* root = buildBinaryTree();std::cout << "中序遍历结果:";printBinaryTreeInOrder(root);return 0;
}

        上述代码通过递归实现输入并构建一颗二叉树,然后对该树进行了中序遍历,并输出所有节点的值,输出结果即为中序遍历的结果。

http://www.lryc.cn/news/152014.html

相关文章:

  • iOS 设置下载部分文件,如何获取完整文件的大小
  • 如何助力金融贷款企业实现精准营销获客
  • html中的换行(\n)或回车(\r)符号不起作用的解决办法、br、white、space、pre、line
  • SpringBoot+MyBatisPlus+MySql+vue2+elementUi的案例、java访问数据库服务、java提供接口服务
  • 设计模式入门(二)观察者模式
  • 列化复杂的xml对应的类
  • 什么是软件开发生命周期(SDLC)?
  • 计算机视觉中常用的角点检测算法及其作用
  • css3英文文字换行,超过两行...展示
  • 查各种金属非金属材料的物性参数方法
  • 【数据库】查询PostgreSQL中所有表逻辑外键
  • 【Kubernetes理论篇】2023年最新CKA考题+解析
  • 【Linux】目录结构、路径
  • Java-集合框架-List,Set,Map,队列
  • 第一章_线程基础知识
  • linux(centos7)定时关机解决方案
  • reactnative笔记
  • 软件架构模式+系统架构
  • SQL 语句学习总结:
  • 【Linux】简单的小程序:进度条
  • Ansible之playbooks剧本
  • 在云原生时代,构建高效的大数据存储与分析平台
  • 第六章,线性变换,1-线性变换、表示矩阵、线性算子
  • 15个关于AI的Github库
  • 在Jupyter 中 from XXX import * 报错
  • 小程序密码显示与隐藏的实现
  • “亚马逊云科技创业加速器”首期聚焦AI,促进入营企业业务发展
  • 已解决“SyntaxError: invalid character in identifier“报错问题
  • 2023-09-02力扣每日一题
  • 服务war包部署SpringBootServletInitializer 的作用