BST的INSERT、FIND、遍历
时间:2022-06-21
本文章向大家介绍BST的INSERT、FIND、遍历,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
https://blog.csdn.net/Charles_Zaqdt/article/details/89810087
嗯...就是贴个板子
#include <bits/stdc++.h>
using namespace std;
struct node{
int num;
node *p, *l, *r;
};
node *root, *null;
int n, xx;
string str;
void p_inorder(node *x){ // 中序遍历
if(x == null) return ;
p_inorder(x -> l);
printf(" %d", x -> num);
p_inorder(x -> r);
return ;
}
void p_preorder(node *x){ // 前序遍历
if(x == null) return ;
printf(" %d", x -> num);
p_preorder(x -> l);
p_preorder(x -> r);
return ;
}
bool find(int a){ // 查询
node *x = root;
while(x != null){
if(x -> num == a) return true;
if(a > x -> num) x = x -> r;
else x = x -> l;
}
return false;
}
void insert(int a){ // 插入
node *x = root, *y = null;
node *z = new node();
z -> num = a;
z -> l = null; z -> r = null;
while(x != null){
y = x;
if(z -> num < x -> num) x = x -> l;
else x = x -> r;
}
z -> p = y;
if(y == null) root = z;
else{
if(z -> num < y -> num) y -> l = z;
else y -> r = z;
}
return ;
}
int main()
{
scanf("%d", &n);
for(int i=0;i<n;i++){
cin>>str;
if(str == "insert"){
scanf("%d", &xx);
insert(xx);
}
else if(str == "find"){
scanf("%d", &xx);
if(find(xx)) puts("yes");
else puts("no");
}
else{
p_inorder(root);
puts("");
p_preorder(root);
puts("");
}
}
return 0;
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 微信公众号开发-素材/消息管理接口
- 微信开发的一些神坑
- Spring Boot集成ElasticSearch实现简单的增删查改接口
- Spring Cloud Zuul 综合使用
- Spring Cloud Hystrix - 服务容错
- 记一次内存溢出问题的排查、分析过程及解决思路
- Spring Cloud Sleuth + Zipkin 实现服务追踪
- Docker化你的SpringBoot项目
- 微信公众号开发者模式介绍及接入
- SpringBoot2.x整合MyBatis
- 使用微信测试账号对网页进行授权
- Spring JMS的使用
- 使用Java编写ActiveMQ的队列模式和主题模式
- 安装ActiveMQ
- Spring Cloud Zuul 快速入门