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

erchas

#include <iostream>
#include <vector>

https://gitee.com/tongchaowei/front-native-page-template/tree/main/image-display/template-01
using namespace std;

class BinaryTree {
private:
    vector<char> tree; // 存储二叉树的数组
    int size; // 二叉树的结点数

    // 计算索引i的左孩子和右孩子索引
    pair<int, int> getChildren(int i) {
        return {2 * i + 1, 2 * i + 2};
    }

    // 计算索引i的双亲索引
    int getParent(int i) {
        return (i - 1) / 2;
    }

public:
    BinaryTree() : size(0) {}

    // 插入结点
    void insert(char data) {
        tree.push_back(data);
        size++;
    }

    // 层序输出每个结点的双亲和孩子信息
    void printParentChild() {
        for (int i = 0; i < size; ++i) {
            char parent = getParent(i) >= 0 ? tree[getParent(i)] : '无';
            pair<int, int> children = getChildren(i);
            char leftChild = children.first < size ? tree[children.first] : '无';
            char rightChild = children.second < size ? tree[children.second] : '无';
            cout << tree[i] << "结点的双亲是" << parent << ",左孩子是" << leftChild << ",右孩子是" << rightChild << endl;
        }
    }

    // 前序遍历
    void preOrder(int index = 0) {
        if (index < size) {
            cout << tree[index] << " ";
            preOrder(getChildren(index).first);
            preOrder(getChildren(index).second);
        }
    }

    // 中序遍历
    void inOrder(int index = 0) {
        if (index < size) {
            inOrder(getChildren(index).first);
            cout << tree[index] << " ";
            inOrder(getChildren(index).second);
        }
    }

    // 后序遍历
    void postOrder(int index = 0) {
        if (index < size) {
            postOrder(getChildren(index).first);
            postOrder(getChildren(index).second);
            cout << tree[index] << " ";
        }
    }

    // 统计叶子结点数量,并输出每个叶子结点
    void countAndPrintLeaves() {
        int count = 0;
        for (int i = 0; i < size; ++i) {
            if (getChildren(i).first >= size && getChildren(i).second >= size) {
                cout << tree[i] << " ";
                count++;
            }
        }
        cout << endl << "叶子结点数量:" << count << endl;
    }
};

int main() {
    BinaryTree bt;
    // 假设输入的二叉树结点为:A B C D E F G H
    char nodes[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
    for (char node : nodes) {
        bt.insert(node);
    }

    cout << "层序输出每个结点的双亲和孩子信息:" << endl;
    bt.printParentChild();

    cout << "前序遍历:" << endl;
    bt.preOrder();
    cout << endl;

    cout << "中序遍历:" << endl;
    bt.inOrder();
    cout << endl;

    cout << "后序遍历:" << endl;
    bt.postOrder();
    cout << endl;

    cout << "统计叶子结点数量,并输出每个叶子结点:" << endl;
    bt.countAndPrintLeaves();

    return 0;
}

 

相关文章:

erchas

#include <iostream> #include <vector> https://gitee.com/tongchaowei/front-native-page-template/tree/main/image-display/template-01 using namespace std; class BinaryTree { private: vector<char> tree; // 存储二叉树的数组 int size;…...

【网络安全】SSL(一):为什么需要 Keyless SSL?

未经许可,不得转载。 文章目录 背景正文背景 随着网站和应用程序向云端迁移,使用 HTTPS(SSL/TLS)加密流量已成为行业标准。然而,传统的 HTTPS 配置要求服务器持有网站的私钥,这在云计算环境中引发了一系列安全性和合规性问题。一旦云服务器遭到攻击,私钥泄露可能带来不…...

ggplot2 分面图等添加注释文字,相加哪里加哪里: 自定义函数 AddText()

如果分面图上还想再添加文字&#xff0c;只能使用底层的grid包了。 函数定义 # Add text to ggplot2 figures # # param label text you want to put on figure # param x position x, left is 0, right 1 # param y position y, bottom is 0, up 1 # param color text color…...

解读缓存问题的技术旅程

目录 前言1. 问题的突发与初步猜测2. 缓存的“隐身术”3. 缓存策略的深层优化4. 反思与感悟结语 前言 那是一个普通的工作日&#xff0c;团队例行的早会刚刚结束&#xff0c;我正准备继续优化手头的模块时&#xff0c;突然收到了用户反馈。反馈的内容是部分数据显示异常&#…...

洛谷P1597

语句解析 - 洛谷 语句解析 题目背景 木有背景…… 题目描述 一串长度不超过255的 PASCAL 语言代码&#xff0c;只有 a,b,c 三个变量&#xff0c;而且只有赋值语句&#xff0c;赋值只能是一个一位的数字或一个变量&#xff0c;每条赋值语句的格式是 [变量]:[变量或一位整数…...

2411rust,76~79

1.76.0稳定版 此版本较小 ABI兼容更新 函数指针文档中新增的ABI兼容部分介绍了函数签名与ABI兼容的意义.大部分是参数类型和返回类型的兼容,及在当前Rust中兼容的列表.文档仅描述现有兼容的状态. 一个新增功能是,现在保证符和u32是ABI兼容的.它们一直有相同大小和对齐方式,…...

vue2.0前端管理系统界面布局设置

前言 后台管理系统的核心就是用户管理、角色管理&#xff08;含权限分配&#xff09;、菜单管理&#xff0c;以及一些业务管理。业务管理通常以及根据不同的角色进行了权限分配。本次任务完成用户管理页面。 一 界面设计 1.引用Element 的Container 布局容器。 以上次博客中…...

4. SQL视图

MySQL中的视图&#xff08;View&#xff09;是一种虚拟表&#xff0c;本质是存储了一条SELECT语句。视图并不直接存储数据&#xff0c;而是动态生成结果集&#xff0c;帮助开发者简化查询逻辑和增强数据安全性。本文将从视图的基础概念到实际应用&#xff0c;逐步深入地探讨如何…...

Simulink学习笔记【PID UG联动仿真】

Simulink进行PID控制及调参&#xff1a; 建立系统动力学框图&#xff08;把状态方程翻译出来&#xff09;&#xff0c;设置成subsystem建立PID反馈回路。示波器叫scope&#xff0c;多变量输出用demux和mux。可以用自动调参Tune模块&#xff0c;调整响应速度和稳定性&#xff0…...

【Python】30个Python爬虫的实战项目!!!(附源码)

Python爬虫是数据采集自动化的利器。本文精选了30个实用的Python爬虫项目&#xff0c;从基础到进阶&#xff0c;每个项目都配有完整源码和详细讲解。通过这些项目的实战&#xff0c;可以全面掌握网页数据抓取、反爬处理、并发下载等核心技能。 一、环境准备 在开始爬虫项目前…...

uni-app 界面TabBar中间大图标设置的两种方法

一、前言 最近写基于uni-app 写app项目的时候&#xff0c;底部导航栏 中间有一个固定的大图标&#xff0c;并且没有激活状态。这里记录下实现方案。效果如下&#xff08;党组织这个图标&#xff09;&#xff1a; 方法一&#xff1a;midButton的使用 官方文档&#xff1a;ta…...

什么是Sass,有什么特点

Sass 概述 什么是 Sass&#xff1f; Sass&#xff08;Syntactically Awesome Style Sheets&#xff09;是一种 CSS 预处理器&#xff0c;它扩展了 CSS 的功能&#xff0c;使其更加强大和灵活。Sass 允许开发者使用变量、嵌套规则、混合宏、继承等高级特性&#xff0c;从而编写…...

服务器端渲染 (SSR) 与客户端渲染 (CSR)

嘿程序员&#xff01;我们都知道&#xff0c;新时代的 Javascript 已经彻底改变了现代网站的结构和用户体验。如今&#xff0c;网站的构建更像是一个应用程序&#xff0c;伪装成一个能够发送电子邮件、通知、聊天、购物、支付等的网站。今天的网站是如此先进、互动&#xff0c;…...

数据结构(Java版)第一期:时间复杂度和空间复杂度

目录 一、数据结构的概念 1.1. 什么是数据结构 1.2. 算法与数据结构的关系 二、算法效率 三、时间复杂度 3.1. 大O的渐进表⽰法 3.2. 计算冒泡排序的时间复杂度 3.3. 计算二分查找的时间复杂度 四、空间复杂度 4.1. 空间复杂度 4.2. 冒泡排序的空间复杂度 4.3.…...

基于web的音乐网站(Java+SpringBoot+Mysql)

目录 1系统概述 1.1 研究背景 1.2研究目的 1.3系统设计思想 2相关技术 2.1 MYSQL数据库 2.2 B/S结构 2.3 Spring Boot框架简介 3系统分析 3.1可行性分析 3.1.1技术可行性 3.1.2经济可行性 3.1.3操作可行性 3.2系统性能分析 3.2.1 系统安全性 3.2.2 数据完整性 …...

用go语言后端开发速查

文章目录 一、发送请求和接收请求示例1.1 发送请求1.2 接收请求 二、发送form-data格式的数据示例 用go语言发送请求和接收请求的快速参考 一、发送请求和接收请求示例 1.1 发送请求 package mainimport ("bytes""encoding/json""fmt""ne…...

GeekChallenge 2024 第十五届极客大挑战 pwn AK

GeekChallenge 2024 第十五届极客大挑战 pwn AK &#x1f340;前言☘️ez_shellcode&#xff08;shellcode&#xff0c;栈溢出&#xff09;&#x1f33f;分析&#x1f33f;解题&#x1f33f;exp ☘️买黑吗喽了吗&#xff08;整数溢出&#xff0c;栈溢出&#xff09;&#x1f3…...

禅道是什么,nas是什么,ssh是什么,finalshell是什么,git命令feat 、fix分别什么意思

禅道&#xff08;Zentao&#xff09;是一款开源的项目管理软件&#xff0c;专为软件开发团队设计。它集成了项目管理、产品管理、质量管理、文档管理和事务管理等多种功能&#xff0c;旨在帮助团队提高工作效率和项目交付质量。禅道支持敏捷开发方法&#xff0c;同时也适用于传…...

点云-半径搜索法-Radius Search

核心作用 在于通过设定一个空间范围&#xff08;半径&#xff09;寻找点的邻域点集合&#xff0c;从而支持对局部区域的分析和操作。 因为空间半径不会随着密度变化而改变点云输出的结果&#xff0c;处理密度变化大的点云时很重要。 应用场景 稀疏点检测&#xff1a;当点云密度…...

P11290 【MX-S6-T2】「KDOI-11」飞船

题目大意&#xff1a;有i种加油站&#xff0c;最开始速度为1&#xff0c;每次加油可以使速度*v&#xff0c;每次加油有一个时间代价&#xff0c;求到达终点所需最小时间。 思路&#xff1a;不妨考虑dp&#xff0c;贪心是错误的。 对于速度而言&#xff0c;&#xff0c;所以速…...

WebGIS地图框架有哪些?

地理信息系统&#xff08;GIS&#xff09;已经成为现代应用开发中不可或缺的一部分&#xff0c;尤其在前端开发中。随着Web技术的快速发展&#xff0c;许多强大而灵活的GIS框架涌现出来&#xff0c;为开发人员提供了丰富的工具和功能&#xff0c;使他们能够创建交互式、高性能的…...

量化加速知识点(整理中。。。)

量化的基本概念 通过减少模型中计算精度&#xff0c;从而减少模型计算所需要的访存量。 参考...

BLIP-2模型的详解与思考

大模型学习笔记------BLIP-2模型的详解与思考 1、BLIP-2框架概述2、BLIP-2网络结构详解3、BLIP-2的几点思考 上一篇文章上文中讲解了 BLIP&#xff08;Bootstrapping Language-Image Pretraining&#xff09;模型的一些思考&#xff0c;本文将讲述一个BLIP的升级版 BLIP-2&am…...

2024年11月22日 十二生肖 今日运势

小运播报&#xff1a;2024年11月22日&#xff0c;星期五&#xff0c;农历十月廿二 &#xff08;甲辰年乙亥月庚寅日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;马、猪、狗 需要注意&#xff1a;牛、蛇、猴 喜神方位&#xff1a;西北方 财神方位&#xff1a…...

小米C++ 面试题及参考答案上(120道面试题覆盖各种类型八股文)

进程和线程的联系和区别 进程是资源分配的基本单位&#xff0c;它拥有自己独立的地址空间、代码段、数据段和堆栈等。线程是进程中的一个执行单元&#xff0c;是 CPU 调度的基本单位。 联系方面&#xff0c;线程是进程的一部分&#xff0c;一个进程可以包含多个线程。它们都用于…...

SQL SELECT 语句:基础与进阶应用

SQL SELECT 语句&#xff1a;基础与进阶应用 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系数据库的编程语言。在SQL中&#xff0c;SELECT语句是最常用的命令之一&#xff0c;用于从数据库表中检索数据。本文将详细介绍SELECT语句的基础用法&#…...

微服务即时通讯系统的实现(服务端)----(1)

目录 1. 项目介绍和服务器功能设计2. 基础工具安装3. gflags的安装与使用3.1 gflags的介绍3.2 gflags的安装3.3 gflags的认识3.4 gflags的使用 4. gtest的安装与使用4.1 gtest的介绍4.2 gtest的安装4.3 gtest的使用 5 Spdlog日志组件的安装与使用5.1 Spdlog的介绍5.2 Spdlog的安…...

《Spring 依赖注入方式全解析》

一、Spring 依赖注入概述 Spring 依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;是一种重要的设计模式&#xff0c;它在 Spring 框架中扮演着关键角色。依赖注入的核心概念是将对象所需的依赖关系由外部容器&#xff08;通常是 Spring 容器&#xff09;进…...

【C++动态规划】1411. 给 N x 3 网格图涂色的方案数|1844

本文涉及知识点 C动态规划 LeetCode1411. 给 N x 3 网格图涂色的方案数 提示 你有一个 n x 3 的网格图 grid &#xff0c;你需要用 红&#xff0c;黄&#xff0c;绿 三种颜色之一给每一个格子上色&#xff0c;且确保相邻格子颜色不同&#xff08;也就是有相同水平边或者垂直…...

外包干了3年,技术退步明显...

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01; 而我已经在一个企业干了四年的功能…...

佛山专业做网站公司有哪些/百度客服24小时电话人工服务

Problem Description 给出组合数C(n,m), 表示从n个元素中选出m个元素的方案数。例如C(5,2) 10, C(4,2) 6.可是当n,m比较大的时候&#xff0c;C(n,m)很大&#xff01;于是xiaobo希望你输出 C(n,m) mod p的值&#xff01;思路&#xff1a;水题&#xff0c;练一下&#xff4c;&a…...

阿里爸爸网站建设策划书/免费seo视频教学

日前&#xff0c;我司 CTO 黄东旭接受了即将开幕的 WOT2018 全球软件与运维技术峰会记者的采访&#xff0c;介绍了 TiDB 作为 HTAP 数据库的技术思考及应用情况&#xff0c;以及 PingCAP 自创立以来对开源的一些心得&#xff0c;以下是报道原文。Enjoy&#xff5e;作者&#xf…...

网站后台数据处理编辑主要是做什么的啊/营销技巧美剧

1.建立wwwroot(/home/wwwrooot)另建立一个wwwroot/test/index.html(网站目录)2.建立vhost文件(/usr/local/nginx/conf/vhost)3.配置nginx.conf&#xff0c;加入&#xff1a;include vhost/*.conf;http{......include vhost/*.conf; // 注意这里是放在http{}里面&#xff0c;而不…...

中建八局劳务派遣招聘/成都seo专家

关于复合索引中的2个索引列谁在前谁在后的进一步讨论--实践篇&#xff1a; 上一次在长老的QQ群里边说了这么一个例子&#xff1a; create table test_pk( id varchar2(10), create_dt date);alter table test_pk modify (id varchar2 (30 ));insert into test_pk select obje…...

网站开发的系统测试/广告推广 精准引流

问题详细描述假设&#xff0c;我已经在我的本地系统中保存了一个JSON文件&#xff0c;同时创建了一个Javascript文件&#xff0c;以便读取JSON文件并打印数据。JSON文件如下&#xff1a;{"resource":"A","literals":["B","C"…...

wordpress推广得积分/网络软文营销案例3篇

开源分析数据库 ClickHouse 以快著称&#xff0c;真的如此吗&#xff1f;我们通过对比测试来验证一下。ClickHouse vs Oracle先用 ClickHouse&#xff08;简称 CH&#xff09;、Oracle 数据库&#xff08;简称 ORA&#xff09;一起在相同的软硬件环境下做对比测试。测试基准使用…...