【PTA數據結構 | C語言版】查找樹中帶有指定數據的結點

本專欄持續輸出數據結構題目集,歡迎訂閱。

文章目錄

    • 題目
    • 代碼

題目

請編寫程序,創建有 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…