【每日OJ —— KY11 二叉树遍历】

每日OJ —— KY11 二叉树遍历

  • 1.题目:KY11 二叉树遍历
  • 2.解法
    • 2.1.算法讲解
    • 2.2.代码实现
    • 2.3.提交通过展示

1.题目:KY11 二叉树遍历

在这里插入图片描述

2.解法

2.1.算法讲解

1.首先需要创建二叉树结构。
2.其次,根据题目根据题目遍历的顺序要求来实现构建二叉树的函数接口,需要注意的是,再构建二叉树给数组存储数据的时候,数组的下标要用指针接收,否则再递归的时候会叠加越界。
3.接着实现最后中序遍历的函数接口。
4.最后,在主函数里定义二叉树的数据字符数组,然后输入数据,调用构建二叉树构建函数接口,构建二叉树,定义二叉树结构指针接受,构建的二叉树,接着调用最后的中序遍历的函数接口,实现最后的中序遍历打印。

2.2.代码实现

#include <stdio.h>
#include<stdlib.h>

//创建二叉树结构
typedef struct TreeNode
{
    char str;
    struct TreeNode* left;
    struct TreeNode* right;

}TreeNode;

//根据题目遍历的顺序要求来构建二叉树
TreeNode* TreeGreate(char* a,int* pi)
{//此处再数组里存储数据的下标要用指针接收,否则再递归的时候会叠加越界
    if(a[*pi]=='#'||a[*pi]=='\0')
    {
        a[(*pi)++];
        return NULL;
    }
    

    TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
    root->str=a[(*pi)++];

    root->left=TreeGreate(a,pi);
    root->right=TreeGreate(a,pi);
    return root;
}

//中序遍历
void InOrder(TreeNode* root)
{
    if(root==NULL)
      return;

    InOrder(root->left);
    printf("%c ",root->str);
    InOrder(root->right);
}

//主函数
int main() {
    char a[100];//定义字符数组
    int pi=0;
    scanf("%s",a); 
    TreeNode* root = TreeGreate(a,&pi);//定义二叉树结构指针来接受构建的二叉树
    InOrder(root);//然后中序遍历
    return 0;
}

2.3.提交通过展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/207546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于mps的pytorch 多实例并行推理

背景 大模型训练好后&#xff0c;进行部署时&#xff0c;发现可使用的显卡容量远大于模型占用空间 。是否可以同时加载多个模型实例到显存空间&#xff0c;且能实现多个实例同时并发执行&#xff1f;本次实验测试基于mps的方案&#xff0c;当请求依次过来时&#xff0c;多个相…

【分布式事务】Seata 开源的分布式事务解决方案

1. 什么是seata Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 2. seata发展历程 阿里巴巴作为国内最早一批进行应用分…

使用 CSS Grid 的响应式网页设计:消除媒体查询过载

文章目录 前言介绍 CSS Grid让我们开始吧实现高级响应性1、Repeat() 2、Auto-fit3、Minmax()结论 前言 你是否厌倦了在实现响应式网站时需要管理多个媒体查询&#xff1f;说再见复杂的代码&#xff0c;拥抱更简单的解决方案吧&#xff1a;CSS Grid。 在这篇文章中&#xff0c;…

AI时代架构师之路:技术、洞察和创新的完美融合

随着人工智能技术的飞速发展&#xff0c;我们正置身于一个由数据驱动的时代。在这个充满无限可能性的AI时代&#xff0c;架构师成为设计和构建先进系统的关键角色。然而&#xff0c;在追逐技术的同时&#xff0c;架构师需要修炼一系列综合素养&#xff0c;使其在技术、业务和伦…

苍穹外卖——删除购物车信息

1. 删除购物车中一个商品 1.1 产品原型 1.2 接口设计 1.3 数据模型 shopping_cart表&#xff1a; -- auto-generated definition create table shopping_cart (id bigint auto_increment comment 主键primary key,name varchar(32) null comment 商品名称…

Jmeter接口自动化测试断言之Json断言

json断言可以让我们很快的定位到响应数据中的某一字段&#xff0c;当然前提是响应数据是json格式的&#xff0c;所以如果响应数据为json格式的话&#xff0c;使用json断言还是相当方便的。 还是以之前的接口举例 Url: https://data.cma.cn/weatherGis/web/weather/weatherFcst…

【LeetCode】 160. 相交链表

相交链表 题目题解 题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&am…

python实现决策树可视化Graphviz和plot_tree

文章目录 效果展示graphviz安装教程实例演示数据集介绍属性说明划分训练集、测试集graphviz可视化plot_tree效果展示 graphviz安装教程 实例演示 数据集介绍 Wine葡萄酒数据集是来自UCI上面的公开数据集,这些数据是对意大利同一地区种植的葡萄酒进行化学分析的结果,这些葡…

C++-设计一个特殊类

目录 一.设计一个类&#xff0c;不能被拷贝 二.设计一个类只能在堆上创建对象 三.设计一个类只能在栈上创建对象 四. 请设计一个类&#xff0c;不能被继承 五.请设计一个类&#xff0c;只能创建一个对象(单例模式) 1.单例模式&#xff1a; 2. 饿汉模式 一.设计一个类&#x…

服务器巡检表

《服务器巡检表》检查项&#xff1a; 1、系统资源 2、K8S集群 3、Nginx 4、JAVA应用 5、RabbitMQ 6、Redis 7、PostgreSQL 8、Elasticsearch 9、ELK日志系统 获取软件开发全套资料进主页。

Python实现FA萤火虫优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法&#xff08;Fire-fly algorithm&#xff0c;FA&#xff09;由剑桥大学Yang于2009年提出 , …

shell编程系列(8)-使用sed处理文本

文章目录 引言sed用法详解在文本中定位打印文本替换文本删除文本新增文本 结语 引言 在日常工作学习中我们都会遇到要编辑文本的场景&#xff0c;例如我们要用vim或者nano等命令去编辑代码&#xff0c;处理文本文件等&#xff0c;这些命令的特点都是需要我们进行交互式的实时处…

Set系列的集合

无序&#xff1a; 存取的顺序不一样 不重复&#xff1a;可以去重 无索引&#xff1a;不能使用普通for进行遍历&#xff0c;也不能通过索引获取元素 Set集合的实现类 HashSet&#xff1a;无序&#xff0c;不重复&#xff0c;无索引 LinkedHashSet&#xff1a;有序&#xff…

【报名】2023产业区块链生态日暨 FISCO BCOS 开源六周年生态大会

作为2023深圳国际金融科技节系列活动之一&#xff0c;由深圳市地方金融监督管理局指导&#xff0c;微众银行、金链盟主办的“2023产业区块链生态日暨FISCO BCOS开源六周年生态大会”将于12月15日下午14:00在深圳举办。 今年的盛会将进一步升级&#xff0c;以“FISCO BCOS和TA的…

自定义函数中的(int*a,int*b)与(int*a,int n)

事实上第一种更安全&#xff0c;不会因越界发生占位&#xff0c;从而导致错误。

三个方法,rar格式转换为zip压缩包

今天和大家分享三个rar压缩包改成zip格式的方法&#xff0c;希望能够帮助到大家&#xff01; 方法一&#xff1a; 直接修改rar压缩包的后缀名变为zip&#xff0c;就可以修改压缩包文件格式了 方法二&#xff1a; 先将rar压缩包解压出来&#xff0c;然后再将解压出的文件进行…

【技术分享】远程透传网关-单网口快速实现西门子S7-200 串口PLC程序远程上下载

准备工作 一台可联网操作的电脑一台单网口的远程透传网关及博达远程透传配置工具网线一条&#xff0c;用于实现网络连接一台西门子S7-200 PLC及其编程软件一个9针串口头及连接线&#xff0c;用于连接PLC一张4G卡或WIFI天线实现通讯(使用4G联网则插入4G SIM卡&#xff0c;WIFI联…

Ascend C 算子开发遇到的问题及解决方法

摘要&#xff1a;在学习Ascend C算子开发进阶课程的时候&#xff0c;进行Ascend C自定义算子工程、算子调用等实验&#xff0c;在开发环境中遇到了一些问题&#xff0c;在这里记录一下。 首先如果在启智社区CANN版本为6.3 &#xff0c;要进行Ascend C算子开发&#xff0c;需要…

fastadmin列表头部加按钮,点击弹出窗口提交数据保存

index.html <a href="{:url(pattern/piliangadd)}" class="btn btn-success btn-piliangadd btn-dialog {:$auth->check(pattern/piliangadd)?:hide}" title="批量添加" ><i class="fa fa-plus"></i> 批量添加…

ThreadPoolExecutor线程池内部处理浅析

我们知道如果程序中并发的线程数量很多&#xff0c;并且每个线程都是执行一个时间很短的任务就结束时&#xff0c;会因为频繁创建线程而大大降低系统的效率&#xff0c;因此出现了线程池的使用方式&#xff0c;它可以提前创建好线程来执行任务。本文主要通过java的ThreadPoolEx…