本专栏持续输出数据结构题目集,欢迎订阅。

文章目录

    • 题目
    • 代码

题目

请编写程序,创建有 4 个结点的树,然后查找给定的 x。

输入格式:
输入首先在第一行给出 4 个正整数,依次对应树的根结点、根的第 1、2、3 个孩子结点的键值。第二行给出待查找的 x 的值。所有键值均为 int 型范围内的整数,同行数字间以空格分隔。

输出格式:
如果 x 在树中存在,则在一行中输出 x is found.;否则输出 x is NOT found.。

输入样例 1:
1 2 3 4
4

输出样例 1:
4 is found.

输入样例 2:
5 6 7 8
4

输出样例 2:
4 is NOT found.

代码

#include <stdio.h>
#include <stdlib.h>// 定义树节点结构
typedef struct TreeNode {int key;struct TreeNode* children[3];  // 最多3个子节点
} TreeNode;// 创建新节点
TreeNode* createNode(int key) {TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));node->key = key;// 初始化子节点为NULLfor (int i = 0; i < 3; i++) {node->children[i] = NULL;}return node;
}// 递归查找节点
int findNode(TreeNode* root, int x) {// 若当前节点为空,返回0if (root == NULL) {return 0;}// 若当前节点的键值等于x,返回1if (root->key == x) {return 1;}// 递归查找子节点for (int i = 0; i < 3; i++) {if (findNode(root->children[i], x)) {return 1;}}// 未找到return 0;
}int main() {int rootKey, c1, c2, c3;// 读取4个节点的键值scanf("%d %d %d %d", &rootKey, &c1, &c2, &c3);// 创建树结构TreeNode* root = createNode(rootKey);root->children[0] = createNode(c1);  // 根的第一个孩子root->children[1] = createNode(c2);  // 根的第二个孩子root->children[2] = createNode(c3);  // 根的第三个孩子// 读取待查找的值xint x;scanf("%d", &x);// 查找x是否在树中if (findNode(root, x)) {printf("%d is found.\n", x);} else {printf("%d is NOT found.\n", x);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915291.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915291.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915291.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL常用命令与工具指南

文章目录PostgreSQL常用命令与工具指南简介1. 连接与基本操作连接数据库环境变量设置&#xff08;避免密码输入&#xff09;常用元命令2. 数据库与表管理数据库操作创建数据库删除数据库修改数据库属性表操作创建表修改表结构删除表索引管理创建索引删除索引3. 数据操作(CRUD)插…

SpringBoot项目部署至云服务器

目录 一、后端项目部署 1、修改配置文件 2、清理打包缓存&#xff0c;打jar包&#xff08;两种方式二选一&#xff09; 自动打包 手动打包 打包成功状态 3、将jar包导入宿主机上 jar包位置 jar包上传 jar包运行 浏览器测试 二、前端代码 docker搭建nginx的基本步骤 打…

Agent-S:重新定义下一代 AI 智能体开发框架

Agent-S&#xff1a;重新定义下一代 AI 智能体开发框架 —— 探索 simular-ai 的开源革命 引言 2025 年&#xff0c;AI 智能体&#xff08;Agent&#xff09;技术正从概念走向产业核心。从自动化工作流到复杂决策系统&#xff0c;开发者亟需更高效的工具链。在这一背景下&am…

保持视频二维码不变,如何更新视频内容,节省物料印刷成本

保持视频二维码不变&#xff0c;如何更新视频内容&#xff0c;节省物料印刷成本&#xff1f; 视频替换功能&#xff0c;是指在保持视频二维码不变、视频观看地址不变、视频调用代码不变的情况下替换视频内容&#xff0c;从而节省用户印刷物料的成本&#xff0c;满足用户更新视…

flutter项目调试问题小结

背景 目标是用android studio flutter 跑hello world 下载 android studio 我下载的是2024.3.2.15版本 最新版下载首页就能下&#xff1a;下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 历史版本可在归档列表下载&#xff1a;Android Studio…

明细列表,明细grid中的默认按钮失效,配置按钮失效

明细列表&#xff0c;明细grid中的默认按钮失效&#xff0c;配置按钮失效原因&#xff1a;采用通配的写法导致的默认按钮失效if(menuDetails){menuDetails.forEach((item) > {const { name, menu_detail_columns, menu_detail_buttons, save_url} item;this.set(${name}Gri…

Matplotlib 30分钟精通

📊 Matplotlib 30分钟精通计划(完整版含输出) ⏰ 时间分配 5分钟:Matplotlib基础概念和简单图表 10分钟:常用图表类型详解 10分钟:图表美化和定制 5分钟:综合实战练习 📚 第一部分:Matplotlib基础概念 (5分钟) 1. 什么是Matplotlib? import matplotlib.pyplot a…

7月19日 暴雨蓝色预警:全国多地迎强降雨,需防范次生灾害

中央气象台7月19日10时继续发布暴雨蓝色预警,预计未来24小时(19日14时至20日14时),我国多地将迎来大到暴雨,局地甚至出现大暴雨,并伴有短时强降水、雷暴大风等强对流天气,需加强防范。 强降雨覆盖范围广,多地需警惕极端降水 此次降雨影响范围广泛,涉及华北、华南、西…

Redis学习-05Redis基本数据结构

Redis 数据结构 String 字符串 基本命令表命令执行效果时间复杂度set key value [key value…]设置 key 的值是 valueO(k), k 是键个数get key获取 key 的值O(1)del key [key …]删除指定的 keyO(k), k 是键个数mset key value [key value …]批量设置指定的 key 和 valueO(k),…

开启modbus tcp模拟调试

1、新建modbus tcp服务器 ‌功能差异‌‌客户端功能‌&#xff1a; 生成并发送Modbus请求报文&#xff08;如功能码03读取寄存器&#xff09;。‌‌ 解析服务器响应数据&#xff0c;实现远程监控或控制。‌‌ ‌服务器端功能‌&#xff1a; 监听默认端口&#xff08;如502&…

昇思+香橙派 AI 开发实践:DeepSeek 全流程指南(基于 openEuler)

一、 环境准备 1. 镜像烧录 镜像烧录可以在任何操作系统内执⾏&#xff0c;这⾥以在Windows系统为例&#xff0c;使用balenaEtcher⼯具&#xff0c;快速烧录镜像到Micro SD卡中。 本章节所需的软/硬件如下&#xff1a; 软件相关&#xff1a;balenaEtcher制卡⼯具、openEul…

AI生成邮件发送脚本(带附件/HTML排版)与定时爬取网站→邮件通知(价格监控原型)

想象一下&#xff1a;每天早晨咖啡还没喝完&#xff0c;你的邮箱就自动收到了心仪商品的最新价格&#xff1b;重要报告准时带着专业排版的附件发送到客户手中——这一切不需要你手动操作。本文将用不到100行代码带你实现这两个自动化神器&#xff01; 一、为什么我们需要自动化…

【vLLM 学习】Encoder Decoder Multimodal

vLLM 是一款专为大语言模型推理加速而设计的框架&#xff0c;实现了 KV 缓存内存几乎零浪费&#xff0c;解决了内存管理瓶颈问题。 更多 vLLM 中文文档及教程可访问 →https://vllm.hyper.ai/ *在线运行 vLLM 入门教程&#xff1a;零基础分步指南 源码 examples/offline_inf…

【MySQL笔记】视图

目录一、什么是视图&#xff1f;二、使用视图的优势三、视图的创建与使用四、不能更新视图的场景五、删除视图六、总结一、什么是视图&#xff1f; 视图&#xff08;View&#xff09;是一种虚拟表&#xff0c;不存储实际数据&#xff0c;而是通过执行预定义的查询动态生成数据…

【RK3576】【Android14】分区划分

获取更多相关的【RK3576】【Android14】驱动开发&#xff0c;可收藏系列博文&#xff0c;持续更新中&#xff1a; 【RK3576】Android 14 驱动开发实战指南

Datawhale 25年7月组队学习coze-ai-assistant Task1学习笔记:动手实践第一个AI Agent—英伦生活口语陪练精灵

Chap1 了解AI工作流 1.1什么是工作流 工作流 就像是一条流水线&#xff0c;把复杂的任务拆分成多个简单的步骤&#xff0c;每一步都有明确的目标和流程。1.2智能体和工作流的区别 智能体&#xff08;AI Agent&#xff09; **是什么 &#xff1a;**智能体是一个自动化的“助手”…

Webpack插件开发深度指南:从原理到实战

Webpack插件是前端工程化的核心引擎&#xff0c;本文将带你深入插件开发全流程&#xff0c;实现一个功能完整的资源清单插件&#xff0c;并揭示Tapable事件系统的核心原理。 一、Webpack插件机制解析 1.1 插件架构核心&#xff1a;Tapable事件系统 Webpack基于Tapable构建了…

2、Redis持久化详解

Redis持久化详解 文章目录 Redis持久化详解 前言 RDB和AOF的区别 RDB和AOF的优缺点 Redis 持久化配置 1、RDB持久化配置 2、AOF持久化配置(尝试修复会删除aof文件内容) 3、AOF 重写功能 新增知识点: 新增知识点: 前言 Redis是一种高级 key-value 型的NoSQL数据库。它跟mem…

curl 命令详解

curl 命令的 -d/–data 和 --data-urlencode 的区别 curl 命令的 -d/–data 和 --data-urlencode 都用于发送 HTTP POST 请求的数据&#xff0c;但关键区别在于 是否自动对数据进行 URL 编码。以下是详细对比&#xff1a; curl 命令的 -d/--data 和 --data-urlencode 都用于发送…

ubuntu下好用的录屏工具

以下是 vokoscreen 的安装教程&#xff0c;适用于 Linux 系统。vokoscreen 是一款简单易用的屏幕录制工具&#xff0c;支持录制屏幕、摄像头和音频。 安装 vokoscreen vokoscreen 提供了多种安装方式&#xff0c;包括通过包管理器、Deb 包或 AppImage 文件。 方法 1&#xf…