128-根据给定的字符串,建立二叉树

news/2024/12/22 18:03:19/

文章目录

    • 一、根据给定字符串str = "ABC##DE##F##G#H##"建立对应的二叉树(其中‘#’代表空)
        • 1、树的节点结构为
        • 2、二叉树的建立

一、根据给定字符串str = "ABC##DE##F##G#H##"建立对应的二叉树(其中‘#’代表空)

1、树的节点结构为
typedef char ElementType;
typedef struct BTNode
{BTNode* LeftNode;//左孩子结点BTNode* RightNode;//右孩子结点ElementType data;//数据域
}BTNode;
2、二叉树的建立
BTNode* BuyNode()//申请一个BTNode*结点
{BTNode* s = (BTNode*)calloc(1,sizeof(BTNode));if (s == nullptr)//判断指针是否为空{exit(1);//为真直接退出}return s;//不为空返回s
}
BTNode* CreateBTree(const char*& str)//注意是以引用传入
{//之前的函数已经判断过str是否为空,所以这边str一定不为空BTNode* s = nullptr;if (*str != '#')//解引用判断字符是否为'#'{s = BuyNode();//如果字符!='#'就新申请一个节点s->data = *str;//将字符赋值给结点的数据域s->LeftNode=CreateBTree(++str);//递归调用,创建右左孩子结点s->RightNode=CreateBTree(++str);//递归调用,创建右孩子结点}return s;//返回根节点
}BTNode* BuildBTree(const char* & str)//传入字符串str
{//判断str是否为空,如果为空直接返回nullptrif (str == nullptr || strlen(str) <= 0)return nullptr;//不为空说明有数据,调用上面的CreateBTree函数,最后返回一个根节点else return CreateBTree(str);
}

http://www.ppmy.cn/news/1156786.html

相关文章

NVIDIA基于Code Llama发布在线版本Llama,人人可以免费使用

Code Llama是Meta发布的基于Llama-2,针对代码生成的NLP大语言模型。Code Llama 是Llama 2的代码专用版本,是通过在其特定代码数据集上进一步训练 Llama 2 来创建的 本质上,Code Llama 具有增强的编码功能,建立在 Llama 2 之上。它可以根据代码和自然语言提示生成代码和有关…

Excel和图片如何互相转换?有何技巧?

一、将图片转为excel表格 首先&#xff0c;打开金鸣识别网站&#xff0c;点击“点击添加需转换的图片或PDF”按钮&#xff0c;添加待识别的图片或PDF文件。 添加完待识别的图片或PDF后&#xff0c;点击“提交识别”按钮&#xff0c;程序便开始识别。 识别完成后&#xff0c;系…

Git命令全集

1、克隆代码 查看项目地址 git remote -v直接克隆 git clone url克隆指定分支 git clone -b 分支 git地址RPC failed错误:修改Git的传输字节限制 git config --global http.postBuffer 10485760002、查看分支 查看 git branch -a切换分支 git branch 分支名从指定分支…

vue3后台管理框架之axios二次封装

在开发项目的时候避免不了与后端进行交互,因此我们需要使用axios插件实现发送网络请求。在开发项目的时候 我们经常会把axios进行二次封装。 目的: 1:使用请求拦截器,可以在请求拦截器中处理一些业务(开始进度条、请求头携带公共参数) 2:使用响应拦截器,可以在响应拦截器…

【Tkinter系列15/45】 ttk部件库之Checkbutton、Combobox

30. ttk.Checkbutton 这个小部件是第 9 节“小部件”的ttk版本。要创建ttk小部件作为给定小部件的子项&#xff1a; Checkbutton.Checkbuttonparent w ttk.Checkbutton(parent, option value, ...)以下是ttk小部件 的选项.Checkbutton 。将它们与第 7 节“小部件”中讨论的Tk…

Uniapp路由拦截-自定义路由白名单

步骤一:新建routerIntercept.js文件 步骤二:routerIntercept文件中写入:(根据自己需要修改whiteList白名单中的页面路径和自己的逻辑处理) import Vue from vue // 白名单 const whiteList = [/pages/public/login,/pages/public/privacyAgreement, ]export default asy…

企业软文投放为什么要选择“包收录媒体”

如果你的软文不能被收录&#xff0c;那么投放的效果一定会大打折扣&#xff01;本篇盒子要跟大家分享的主要内容是&#xff1a;企业软文投放为什么要选择“包收录的媒体”&#xff0c;以及怎么找到包收录媒体发稿平台&#xff1f; 一、包收录媒体对企业宣传的作用 百度、360等…

Vue - 快速入门,这一套就够了!(Vue core + 案例 + 效果演示)

目录 前言 一、Vue 基础 1.1、Vue 基础示例 a&#xff09;html 部分&#xff1a; b&#xff09;script 部分&#xff1a; 二、本地应用 1.1、内容绑定&#xff0c;事件绑定 1.1.1、v-text 设置标签文本值 1.1.2、v-html 设置标签的 innerHTML 1.1.3、v-on 为元素绑定…