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

二叉树(ACM版)

【数据结构1-2】二叉树 - 题单 - 洛谷

 

【数据结构】day2-树_J娇娇_的博客-CSDN博客

上学时的作业

P1827 [USACO3.4] 美国血统 American Heritage

二叉树特点写法(非二叉树)

截取字符串写法

#include<string>
#include<cstring>
#include<iostream>
#include<cstdio>
using namespace std;
string pre,in;
void work(string pre,string inor)
{if(pre.empty())return;char root=pre[0];int k=inor.find(root);pre.erase(pre.begin());string leftpre=pre.substr(0,k);//从0开始切割k个 0 - k-1string rightpre=pre.substr(k);//k到最后 string leftinor=inor.substr(0,k);string rightinor=inor.substr(k+1);work(leftpre,leftinor);work(rightpre,rightinor);printf("%c",root);//因为要输出后序序列,所以是左右根
}
int main()
{cin>>in>>pre;work(pre,in);putchar('\n');return 0;
}

位置标记写法

//一定要看清题目中为先中序,再是前序
#include <bits/stdc++.h>  //万能头文件
using namespace std;
string a,b;   //把中前遍历当做字符串输入
void houxu(int x,int y,int p,int q) {  //x~y为前序遍历 p~q为中序遍历if(x>y||p>q) return ;//规定边界条件else {int i=b.find(a[x]);   //利用根左右的特性来在中序队列中查找houxu(x+1,x+i-p,p,i-1);      //递归左子树houxu(x+i-p+1,y,i+1,q);    //递归右子树cout<<a[x];
}
}
int main() {cin>>b>>a;//反一下输入int l=a.length()-1;//因为是0开始,所以要减一houxu(0,l,0,l);//递归return 0;
}

二叉树写法

#include<bits/stdc++.h>
using namespace std;
typedef struct tree
{char ch;struct tree *Lchild;struct tree *Rchild;
}Nodetree,*Betree;
void CreateTree(Betree *r,char Pre[],char In[],int prel,int prer,int il,int ir)//中序数组+后序数组递归创建二叉链表
{if(il>ir)*r=NULL;else{*r=new Nodetree;(*r)->ch=Pre[prel];int mid=il;while(In[mid]!=Pre[prel])//定位mid{mid++;}CreateTree(&((*r)->Lchild),Pre,In,prel+1,prel+mid-il,il,mid-1);CreateTree(&((*r)->Rchild),Pre,In,prel+mid-il+1,prer,mid+1,ir);}
}
void print(Betree r)
{if(r==NULL)return;else{print(r->Lchild);print(r->Rchild);cout<<r->ch;}
}
int main()
{char Pre[10010],In[10010];cin>>In>>Pre;Betree r;r=new Nodetree;CreateTree(&r,Pre,In,0,strlen(Pre)-1,0,strlen(In)-1);print(r);
}

前序+中序->后序

 CreateTree(&((*r)->Lchild),Pre,In,prel+1,prel+mid-il,il,mid-1);CreateTree(&((*r)->Rchild),Pre,In,prel+mid-il+1,prer,mid+1,ir);

中序+后序->前序

CreateTree(&((*r)->Lchild),Last,In,LastL,LastL+mid-il-1,il,mid-1);
CreateTree(&((*r)->Rchild),Last,In,LastL+mid-il,LastR-1,mid+1,ir);

P1305 新二叉树

#include<iostream>
#include<string>
#include<cstring>//不加会CE
using namespace std;
int n;
string s;
int main()
{cin>>n;cin>>s;for(int i=2;i<=n;++i)//由于第一个为原串,所以单独输入{string ss;cin>>ss;int x=s.find(ss[0]);//找到这个子树的根节点在原串中的位置s.erase(x,1);//清除根节点s.insert(x,ss);//加入子树}for(int i=0;i<s.size();++i)if(s[i]!='*') cout<<s[i];//不输出空节点else continue;
}
#include<iostream> 
using namespace std;
struct programmer
{char lc;char rc;
}lt[130];//数组,这个十分重要,一会儿输入字符的时候还要用这个串起来
//其实真正起作用的只有lt[73]~lt[122],说这个是为了防止一些人不多想,方便理解的
char h,h1;//储存一会儿要输入的节点,多定义一个h1是为了一会儿将根节点保留下来先代入函数
void sm(char x)
{if(x=='*') return;cout<<x;sm(lt[x].lc);sm(lt[x].rc);
}
int main()
{int n;cin>>n;cin>>h1;//根 cin>>lt[h1].lc;//左 cin>>lt[h1].rc;//右 for(int i=2;i<=n;i++){cin>>h;cin>>lt[h].lc;cin>>lt[h].rc;}sm(h1);return 0;
}

相关文章:

二叉树(ACM版)

【数据结构1-2】二叉树 - 题单 - 洛谷 【数据结构】day2-树_J娇娇_的博客-CSDN博客 上学时的作业 P1827 [USACO3.4] 美国血统 American Heritage 二叉树特点写法&#xff08;非二叉树&#xff09; 截取字符串写法 #include<string> #include<cstring> #include…...

Scratch 之 如何制作鼠标框(2)—— 鼠标框框定角色

hello&#xff0c;大家好&#xff0c;欢迎来到鼠标框系列的第二课时&#xff01; 咱们废话不多说&#xff0c;直接开始 首先&#xff0c;温故知新一下&#xff0c;上个教程我们讨论了如何绘制鼠标框&#xff0c;网址&#xff1a;绘制鼠标框 你说&#xff0c;一个鼠标框&…...

爬虫逆向实战(九)--猿人学第十三题

一、数据接口分析 主页地址&#xff1a;猿人学第十三题 1、抓包 通过抓包可以发现数据接口是api/match/13 2、判断是否有加密参数 请求参数是否加密&#xff1f; 无请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无cookie是否加密&#xff1f; 在“cookie”模块…...

NeuralNLP-NeuralClassifier的使用记录(一),训练预测自己的【英文文本多分类】

NeuralNLP-NeuralClassifier的使用记录&#xff0c;训练预测自己的英文文本多分类 NeuralNLP-NeuralClassifier是腾讯开发的一个多层多分类应用工具&#xff0c;支持的任务包括&#xff0c;文本分类中的二分类、多分类、多标签&#xff0c;以及层次多标签分类。支持的文本编码…...

Pycharm社区版连接WSL2中的Mysql8.*

当前时间2023.08.13&#xff0c;Windows11中默认的WSL版本已经是2了&#xff0c;在WSL2中默认的Ubuntu版本已经是22.04&#xff0c;而Ubuntu22.04中默认的Mysql版本已经是8.*。 Wsl 2 中安装mysql WSL2中安装Mysql的方法参考自微软官方文档【开始使用适用于 Linux 的 Windows …...

前端传递参数时,form-data 和 json 的区别

在传递参数时&#xff0c;form-data 和 JSON 是两种常见的数据格式。 form-data 是一种多部分表单数据格式&#xff0c;通常用于上传文件或包含二进制数据的表单提交。它使用 multipart/form-data 格式来编码数据。在使用 form-data 格式时&#xff0c;数据会被分割成多个部分&…...

FairyGUI-Unity侧菜单扩展

目录 缘由&#xff1a; 分析&#xff1a; 准备&#xff1a; 完整代码&#xff1a; 缘由&#xff1a; 在使用FairyGUI作为项目UI开发时&#xff0c;有时会使用FairyGUI提供的Scripting Define Symbols。当前FairyGUI中的Scripting Define Symbols有&#xff1a; 骨骼动画 …...

学习笔记十八:污点、容忍度

污点、容忍度 污点、容忍度管理节点污点把k8snode2当成是生产环境专用的&#xff0c;其他node是测试的给k8snode1也打上污点 污点、容忍度 给了节点选则的主动权&#xff0c;我们给节点打一个污点&#xff0c;不容忍的pod就运行不上来&#xff0c;污点就是定义在节点上的键值属…...

amis百度前端框架,在js中使用amis写json转页面

amis百度前端框架,在js中使用用amis写的json页面 1.在项目中使用百度 amis 的sdk做开发库。 <script src="./sdk/sdk/sdk.js"></script> 2。加载sdk中的库: amis = amisRequire(amis/embed);amisLib = amisRequire(amis);const match = amisRequire…...

openEuler安装jdk、openEuler离线安装jdk、openEuler设置jdk、openEuler在线安装

记录一下本人使用openEuler安装jdk的过程,希望能帮到看到帖子的你! 方式一:在线安装: 在 openEuler 上安装 JDK(Java Development Kit)的步骤如下: 更新系统: 在安装 JDK 之前,建议先更新系统软件包。打开终端并执行以下命令: sudo dnf update 这将更新系统中的软…...

Photoshop制作漂亮光泽感3D按钮

原文链接(https://img-blog.csdnimg.cn/45472c07f29944458570b59fe1f9a0e0.png)...

【网络爬虫】模拟登录与代理

代理...

无线局域网基础知识与架构

1.1 无线局域网 无线局域网(Wireless Local Area Network&#xff0c;WLAN)是指以无线信道作为传输 媒介的计算机局域网络&#xff0c;是计算机网络与无线通信技术相结合的产物&#xff0c;它以无线多 址信道作为传输媒介&#xff0c;提供传统有线局域网的功能&#xff0c;能…...

uniapp tabbar 浏览器调试显示 真机不显示

解决方案&#xff0c;把tabBar里面的单位全改为px&#xff0c;rpx是不会显示的&#xff01; 注意了&#xff0c;改完一定要重新运行&#xff0c;不然无效&#xff0c;坑爹 "tabBar": {"borderStyle": "black","selectedColor": &quo…...

极智AI | 地平线BPU跑通YOLOv5

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 地平线BPU跑通YOLOv5。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 硬件设备为地平线旭日x3,开发环境和执行环…...

循环服务器(同时连接多个客户端,为每个客户端创建一个子进程处理其消息)

服务器 客户端 结果...

【从零学习python 】38.Python包的使用及导入方式

文章目录 包的使用1. 导入包的方式总结2. __init__.py文件有什么用3. __all__ 注意事项进阶案例 包的使用 一个模块就是一个 py 文件&#xff0c;在 Python 里为了对模块分类管理&#xff0c;就需要划分不同的文件夹。多个有联系的模块可以将其放到同一个文件夹下&#xff0c;为…...

docker 容器满了常用处理方法

docker 容器满了常用处理方法 1、运行 df -h 查看剩余磁盘占用情况 2、进入到docker目录 cd /var/lib/docker 3、运行du -h --max-depth1 &#xff08;检索文件的最大深度1&#xff0c;即只检索汇总计算当前目录下的文件&#xff09; 4、进入占用最大的 /containers文件夹&am…...

28、springboot的静态模版(前端页面)重加载和 devtools开发者工具

springboot的静态模版重加载和 devtools开发者工具 总结&#xff1a;实现静态模板重加载的两个方法 方法1&#xff1a;在 yml 配置文件&#xff0c;关闭页面模板缓存&#xff0c; 再按 ctrlf9 重新构建 方法2&#xff1a;直接添加 devtools 依赖&#xff0c;再按 ctrlf9 重新构…...

[FPGA IP系列] FPGA常用存储资源大全(RAM、ROM、CAM、SRAM、DRAM、FLASH)

本文主要介绍FPGA中常用的RAM、ROM、CAM、SRAM、DRAM、FLASH等资源。 一、RAM RAM(Random Access Memory)是FPGA中最基本和常用的内部存储块&#xff0c;根据不同架构可以实现不同容量&#xff0c;最大可达几十Mb。 FPGA中的RAM主要包括: 分布式RAM&#xff1a;存在于逻辑块…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...