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

PTA 6-12 二叉搜索树的操作集

本题要求实现给定二叉搜索树的5种常用操作。函数接口定义BinTree Insert( BinTree BST, ElementType X ); BinTree Delete( BinTree BST, ElementType X ); Position Find( BinTree BST, ElementType X ); Position FindMin( BinTree BST ); Position FindMax( BinTree BST );函数Insert将X插入二叉搜索树BST并返回结果树的根结点指针函数Delete将X从二叉搜索树BST中删除并返回结果树的根结点指针如果X不在树中则打印一行Not Found并返回原树的根结点指针函数Find在二叉搜索树BST中找到X返回该结点的指针如果找不到则返回空指针函数FindMin返回二叉搜索树BST中最小元结点的指针函数FindMax返回二叉搜索树BST中最大元结点的指针。其中BinTree结构定义如下typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; };裁判测试程序样例#include stdio.h #include stdlib.h typedef int ElementType; typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; void PreorderTraversal( BinTree BT ); /* 先序遍历由裁判实现细节不表 */ void InorderTraversal( BinTree BT ); /* 中序遍历由裁判实现细节不表 */ BinTree Insert( BinTree BST, ElementType X ); BinTree Delete( BinTree BST, ElementType X ); Position Find( BinTree BST, ElementType X ); Position FindMin( BinTree BST ); Position FindMax( BinTree BST ); int main() { BinTree BST, MinP, MaxP, Tmp; ElementType X; int N, i; BST NULL; scanf(%d, N); for ( i0; iN; i ) { scanf(%d, X); BST Insert(BST, X); } printf(Preorder:); PreorderTraversal(BST); printf(\n); MinP FindMin(BST); MaxP FindMax(BST); scanf(%d, N); for( i0; iN; i ) { scanf(%d, X); Tmp Find(BST, X); if (Tmp NULL) printf(%d is not found\n, X); else { printf(%d is found\n, Tmp-Data); if (TmpMinP) printf(%d is the smallest key\n, Tmp-Data); if (TmpMaxP) printf(%d is the largest key\n, Tmp-Data); } } scanf(%d, N); for( i0; iN; i ) { scanf(%d, X); BST Delete(BST, X); } printf(Inorder:); InorderTraversal(BST); printf(\n); return 0; } /* 你的代码将被嵌在这里 */输入10 5 8 6 2 4 1 0 10 9 7 5 6 3 10 0 5 5 5 7 0 10 3输出Preorder: 5 2 1 0 4 8 6 7 10 9 6 is found 3 is not found 10 is found 10 is the largest key 0 is found 0 is the smallest key 5 is found Not Found Inorder: 1 2 4 6 8 9代码BinTree Insert( BinTree BST, ElementType X ){ if(BST NULL){ BST (BinTree)malloc(sizeof(struct TNode)); BST-Data X; BST-Left NULL; BST-Right NULL; }else if(XBST-Data){ BST-Left Insert(BST-Left,X); }else if(XBST-Data){ BST-Right Insert(BST-Right,X); } return BST; } BinTree Delete( BinTree BST, ElementType X ){ BinTree temp; if(BST ! NULL){ if(XBST-Data){ BST-Left Delete(BST-Left,X); }else if(XBST-Data){ BST-Right Delete(BST-Right,X); }else{ if(BST-LeftBST-Right){ temp FindMin(BST-Right); BST-Data temp-Data; BST-Right Delete(BST-Right,temp-Data); }else{ temp BST; if(BST-Left NULL) BST BST-Right; else if(BST-Right NULL) BST BST-Left; free(temp); } } return BST; } printf(Not Found\n); return BST; } Position Find( BinTree BST, ElementType X ){ if(BSTNULL) return NULL; if(BST-Data X) return BST; if(BST!NULL){ if(XBST-Data) return Find(BST-Left,X); else if(XBST-Data) return Find(BST-Right,X); } } Position FindMin( BinTree BST ){ if(BST){ while(BST-Left){ BST BST-Left; } } return BST; } Position FindMax( BinTree BST ){ if(BST){ while(BST-Right){ BST BST-Right; } } return BST; }删除代码解读

相关文章:

PTA 6-12 二叉搜索树的操作集

本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X ); BinTree Delete( BinTree BST, ElementType X ); Position Find( BinTree BST, ElementType X ); Position FindMin( BinTree BST ); Position FindMax( Bin…...

前架构师转行AI风水师:给机房看罗盘——软件测试从业者的专业启示

在数字化转型的浪潮中,一名前IT架构师转型为“AI风水师”,专为机房(如数据中心)布局提供风水指导,这看似荒诞的跨界实则蕴含深刻的测试专业智慧。作为软件测试从业者,我们习惯于用严谨的逻辑工具预测风险、…...

摆脱浏览器书签混乱!Fenrus+cpolar解锁公网访问新玩法

Fenrus 是一款主打个性化的开源导航页工具,支持添加自定义网站链接、切换暗色 / 亮色主题、设置快捷搜索引擎,还能整合天气、壁纸轮播等小部件,依托 Docker 可快速部署在极空间、群晖 NAS 或普通服务器上,无需复杂操作就能搭建专属…...

计算机毕业设计java基于人脸识别的医疗保险系统的设计与实现 基于面部识别技术的智慧医保服务平台的设计与开发 融合生物特征识别的医疗健康保险管理系统的构建与实现

计算机毕业设计java基于人脸识别的医疗保险系统的设计与实现0a8359(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着我国医疗保障体系的不断完善和人口老龄化进程的加快&#…...

用Selenium操控寺庙:香火钱自动分账系统

一、系统架构与测试挑战寺庙香火分账系统采用“支付-清算-分账”三层架构:前端支付层:多殿堂独立收款码(微信/支付宝/云闪付)及现金通道,需兼容老年香客的无感支付流程规则引擎层:预设阶梯分账比例&#xf…...

数据类型之——变量

形式:数据类型 变量 数据 例如:int age 18;byte ss22;short dd 33;long ff 44;float gg 55.5f;double hh 66.6;char jj z;boolean kk false;boolean llture ;...

C语言lesson6

#选择结构程序设计一、关系运算符1.1以“1”代表“真”,以“0”代表“假”(在C的逻辑运算中)例题1:表达式的结果是0或者1当a3,b2,c1时 a>b的值为“真”,表达式值为1 (a>b)c的值为“真”&a…...

生产级 Redis 避坑指南:从选型决策到全链路内网调通

⚡ 生产级 Redis 避坑指南:从选型决策到全链路内网调通 在微服务架构中,Redis 是系统的“加速器”。然而,很多开发者在云端创建 Redis 实例时,由于忽略了架构选型和安全细节,往往会导致系统在上线后出现单点故障或无法…...

炸穿 JVM 瓶颈!全网最硬核 JVM 核心参数・线上配置规范与调优 SOP

前言在JDK17成为主流生产环境的今天,90%的线上JVM问题并非代码逻辑缺陷,而是参数配置不合理、内存规划错误、垃圾回收器选型不匹配导致。JVM调优从来不是玄学,而是基于内存模型、垃圾回收机制的标准化工程实践。本文聚焦JDK17环境下JVM核心参…...

GESP2026年3月认证C++二级( 第一部分选择题(9-15))

第9题&#xff1a;continue 和 break 的迷宫正确答案&#xff1a;C&#xff08;6&#xff09;1、代码&#xff1a;int count 0; for (int i 1; i < 4; i)for (int j 1; j < 5; j){if (j 3)continue;if (i 2)break;count 1;} cout << (count);2、&#x1f31f…...

2026家长自查手册:为孩子选择DHA,您是否问对了这五个问题?

2026家长自查手册&#xff1a;为孩子选择DHA&#xff0c;您是否问对了这五个问题&#xff1f;在信息过载的今天&#xff0c;为孩子选择一款DHA或“补脑”产品&#xff0c;可能比解答一道数学压轴题更让家长困惑。品牌故事、明星代言、纯度竞赛……营销声音震耳欲聋。然而&#…...

光明区举办“3·15”国际消费者权益日系列活动 广发银行深圳分行金融知识普及守护新就业群体

2026年3月14日至15日&#xff0c;以“奔向光明 欢乐购不够”为主题的光明区“315”国际消费者权益日系列活动在星河COCO City及深圳科学技术馆举行。活动通过趣味互动与精准服务&#xff0c;将消费者权益保护与金融知识普及深度融合&#xff0c;特别关注新就业形态劳动者群体&a…...

Java高频面试题(十):Spring框架核心(IOC与AOP深度解析)

Spring、SpringBoot、SpringMVC、Mybatis、Mybatis-Plus、SpringSecurity框架 Spring FrameWork 基础核心:提供IOC容器管理Bean生命周期,通过AOP实现日志、事务等横切关注点。 整合角色:作为底层容器,支撑SpringBoot、SpringMVC、SpringSecurity等模块的运行 核心概念 IOC(…...

TypeScript+React 全栈生态实战:从架构选型到工程落地,告别开发踩坑

目录 前言 为什么说这套技术栈是全栈开发的最优解&#xff1f; 1、TypeScript&#xff1a;全栈开发的"类型安全护城河" 2、ReactNext.js&#xff1a;前端工程化的"效率利器" 3、MongoDBMongoose&#xff1a;非关系型数据库的"实战指南" 4、…...

Vulkan demo入门教程三:逻辑设备、队列与交换链

Vulkan 嵌入式开发实战&#xff1a;逻辑设备、队列与交换链 (Swapchain)系列回顾&#xff1a; [第一步] 我们创建了 VkInstance 并加载了扩展。[第二步] 我们绕过了窗口系统&#xff0c;直接通过 VK_KHR_display 枚举了物理设备、选择了 HDMI 接口并创建了直连 Surface。 本章目…...

Molili 1.0.7 版本更新:从根源降低使用成本,让OpenClaw更省钱

最近 AI 圈爆火的OpenClaw&#xff0c;被网友戏称 AI 界的“波士顿龙虾”—— 能力足够硬核&#xff0c;但门槛够高、成本够贵&#xff0c;全英文操作界面、代码级部署要求、居高不下的 token 消耗&#xff0c;让绝大多数普通用户只能围观&#xff0c;根本没法把这只“硬核龙虾…...

CoPaw for Windows 桌面版安装与应用指南(一键安装)

CoPaw for Windows 桌面版安装与应用指南 一、安装前准备 下载安装包&#xff1a;https://download.csdn.net/download/wenxing462/92736599 系统要求&#xff1a;建议 Windows 10 或 Windows 11&#xff08;64位操作系统&#xff09;。 核心密钥&#xff1a;与命令行版一样…...

Unity报错?删Library秒解决!

写在最前面:每个Unity开发者都经历过的崩溃瞬间 凌晨两点。 你,盯着屏幕。 眼睛,已经发红。 项目,明天就要交。 然后,你打开Unity。 然后,它报错了。 Error: Failed to load assembly Assembly-CSharp.dll UnityEditor.BuildPlayerWindow+BuildMethodException As…...

面试经验--机器人岗位

3-16&#xff1a;上海xxx公司1.常用的控制算法和实现原理2.cmake命令find.packet3.机械臂正逆运动学原理4.dh参数模型相关内容5.二分查找6.单片机实现pwm波形输出7.流媒体服务器功能&#xff0c;如何解决延迟&#xff0c;如何实现图片传输8.客户端获取流媒体的过程9.除了moveit…...

‌移动端性能测试:Android Studio Profiler 深度优化实践

一、性能测试核心维度与Profiler工具链1.1 四大关键性能指标模块监控指标测试场景CPU线程活动/核心利用率列表滑动卡顿、复杂计算延迟内存Java堆占用/对象分配追踪内存泄漏、频繁GC导致的卡顿网络请求频率/数据传输量接口重复调用、无效流量消耗能耗唤醒锁/Wakeup事件后台异常耗…...

罗彻斯特大学与微软联手揭示多轮对话攻击新威胁

这项由罗彻斯特大学与微软研究院合作完成的研究发表于2026年的国际学习表征会议&#xff08;ICLR 2026&#xff09;&#xff0c;论文编号为arXiv:2602.06854v1。有兴趣深入了解的读者可以通过该编号查询完整论文。想象你正在和一个智能助手对话&#xff0c;就像和Siri或ChatGPT…...

OpenClaw安装tavily-search(skill)

tavily-search直接把 Tavily Search API 集成进 OpenClaw&#xff0c;让你的 AI 助手能享受到专为 Agent/RAG 优化的搜索结果&#xff1a;更干净的结构化输出、AI 生成的摘要、页面提取、网站爬取&#xff0c;甚至深度研究报告。相比 Brave&#xff0c;它在减少幻觉、提升回答…...

PPR给水管系列,品质如何把控

在PPR给水管的生产过程中&#xff0c;品质控制是确保产品安全和性能的核心。这个过程从原材料筛选开始&#xff0c;确保使用无害和符合标准的材料。接着&#xff0c;应用先进生产工艺来提升管道的强度和耐用性&#xff0c;使产品在各类环境下都能表现出色。每根管道都要经过严格…...

2026 年淮安软件开发行业白皮书:本地化小程序定制的新标准

2026 年淮安软件开发行业白皮书&#xff1a;本地化小程序定制的新标准 Meta Description: 深度解析 2026 年淮安小程序开发市场趋势&#xff0c;揭秘本地化定制的核心标准与成本结构。从需求分析到上线交付全流程指南&#xff0c;帮助企业在数字化转型中做出明智决策。 关键词:…...

百考通:AI赋能文献综述,让学术梳理高效又专业

在学术研究的道路上&#xff0c;文献综述是承前启后的关键环节&#xff0c;它既是对领域内已有研究的系统梳理&#xff0c;也是确立自身研究创新点的核心基础。然而&#xff0c;海量文献的筛选、观点的整合、逻辑的搭建&#xff0c;往往让科研工作者与学生耗费大量时间与精力。…...

百考通:AI赋能期刊论文写作,让学术创作更高效

在学术研究领域&#xff0c;期刊论文的撰写是成果输出的关键环节&#xff0c;却也让众多科研工作者与学生倍感压力&#xff1a;选题迷茫、逻辑梳理困难、格式规范复杂、内容提炼耗时&#xff0c;严重拖慢了学术成果的发表节奏。百考通&#xff08;https://www.baikaotongai.com…...

百考通:AI赋能开题报告,让学术研究起步更高效

对于每一位学子与科研人而言&#xff0c;开题报告是学术研究的“第一粒扣子”&#xff0c;它不仅是研究方向的蓝图&#xff0c;更是顺利推进论文写作、获得导师认可的关键。然而&#xff0c;选题迷茫、文献梳理繁琐、逻辑框架搭建困难等问题&#xff0c;常常让开题之路步履维艰…...

百考通:AI赋能实践报告,让实习总结高效又专业

对于每一位在校学生和职场新人而言&#xff0c;实践报告都是记录成长、沉淀经验的关键载体&#xff0c;却也常常成为令人头疼的难题&#xff1a;要么不知如何梳理工作脉络&#xff0c;要么难以精准提炼收获与反思&#xff0c;要么在格式规范和字数要求上反复纠结。百考通&#…...

苹果转安卓|3 种数据迁移方法,小白也能轻松搞定

用惯了 iPhone 想换安卓机&#xff0c;最愁的就是手机里的照片、联系人、短信这些重要数据怎么挪过去&#x1f623;别慌&#xff01;整理了 3 种超实用的 iPhone 转 Android 数据传输方法&#xff0c;从一键全传的懒人版到免费手动版&#xff0c;适配不同需求&#xff0c;跟着步…...

OpenClaw Windows 安装指南

什么是 OpenClaw OpenClaw 是一款开源的本地 AI 助手&#xff0c;运行在你自己的电脑上&#xff0c;可通过 Web UI、Telegram、WhatsApp、Discord 等多种方式交互&#xff0c;实现文件操作、终端命令执行、浏览器控制等自动化任务。 前置要求 Windows 10 或更高版本Node.js …...