二叉查找树(BST)专题
二叉查找树专题
- 二叉查找树的基本操作
- 查找
- 插入
- 删除
- 二叉查找树的性质
代码来源:晴神《算法笔记》!!
二叉查找树的基本操作
查找
void search(node* root, int x){if(root == NULL){printf("search failed\n");return;}if(root->data == x)printf("%d", x);else if(x < root->data)search(root->lchild, x)elsesearch(root->rchild, x);
}
插入
void insert(node* &root, int x){if(root == NULL){root = newnode(x);return;}if(root->data == x){ //结点已经存在 return;}else if(x < root->data)insert(root->lchild, x);else insert(root->rchild, x);
}
删除
node* findmax(node* root){ //直接前驱 while(root->rchild != NULL){root = root->rchild;}return root;
}
node* findmin(node* root){ //直接后继 while(root->lchild != NULL){root = root->lchild;}return root;
}
void deletenode(node* &root, int x){ //加引号 if(root == NULL){return;}if(root->data == x){if(root->lchild == NULL && root->rchild == NULL)root = NULL;else if(root->lchild != NULL){node* pre = findmax(root->lchild);root->data = pre->data;deletenode(root->lchild, pre->data);}else{node* next = findmin(root->rchild);root->data = next->data;deletenode(root->rchild, next->data);}}else if(x < root->data)deletenode(root->lchild, x);else deletenode(root->rchild, x);
}
二叉查找树的性质
对二叉查找树进行中序遍历,遍历的结果是有序的。
二叉查找树(BST)专题相关推荐
- 二叉查找树BST的删除操作
二叉查找树BST的删除操作(哈工大版) C++代码 /***** 二叉查找树BST *****/ #include<iostream> using namespace std;struct ...
- c# treeview查找并选中节点_最通俗易懂的二叉查找树(BST)详解
原来来自 呆萌数据结构-06二叉查找树imoegirl.com 二叉查找树(Binary Search Tree),简写BST,是满足某些条件的特殊二叉树.任何一个节点的左子树上的点,都必须小于当前 ...
- 二叉查找树BST基本操作(一)
一.定义 二叉树:将二叉树定义为一个空链接,或者是一个有左右两个链接的节点,每个链接都指向一棵(独立的)子二叉树. 二叉查找树(BST):是一棵二叉树,其中每一个节点都含有一个可比较的键(以及相关联的 ...
- Python数据结构11:树的实现,树的应用,前中后序遍历,二叉查找树BST,平衡二叉树AVL树,哈夫曼树和哈夫曼编码
1.概念 树一种基本的"非线性"数据结构. 相关术语: 节点Node:组成树的基本部分.每个节点具有名称,或"键值",节点还可以保存额外数据项,数据项根据不同的 ...
- 【二叉查找树BST】二叉查找树的基本操作总结
二叉树就是一棵顺序树,优化查找效率.一组相同的数据所构造出来的二叉查找树不同. 二叉查找树的查找:(一个函数) struct Node{int data;Node* lchild,rchild; }; ...
- 数据结构:二叉查找树 BST 平均查找长度 ASL 的计算
平均查找长度 ASL(Average Search Length),即平均查找长度,在查找运算中,由于所费时间在关键字的比较上,所以把平均需要和待查找值比较的关键字次数称为平均查找长度. 它的定义是这 ...
- 二叉查找树(BST)的基本概念及常用操作
二叉查找树 二叉查找树(Binary Search Tree),也称二叉搜索树.有序二叉树(ordered binary tree),排序二叉树(orted binary tree),是指一棵空树或者 ...
- 数据结构——二叉查找树(BST)的删除
数据结构--二叉树(BST)的删除 文章目录 数据结构--二叉树(BST)的删除 前言 一.BST删除的几种情况 二.节点删除方法 1.一般方法 2.对1方法的优化 3.懒汉删除(前继和后继) 前言 ...
- 1043 Is It a Binary Search Tree(二叉查找树BST)
1043 Is It a Binary Search Tree 0.题目 A Binary Search Tree (BST) is recursively defined as a binary t ...
- 二叉树(BT)、二叉查找树(BST)、平衡二叉树(AVL)、B-Tree、B+Tree、红黑树(BRT)
目录 树的概念 树的分类 二叉树 二叉查找树 平衡二叉树(AVL) B-Tree(平衡多路查找树) B树的关键特征 B+Tree B+树关键特征 红黑树(BRT) 左旋 右旋 时间复杂度 树形结构是一 ...
最新文章
- Pandas把dataframe中的整数数值(integer)转化为时间(日期、时间)信息实战
- CS中常用转义符与@符号的作用
- Log4j配置文件解读和模板页收藏
- cocos2d-html5 简易 下拉表单 控件
- java 获取插入数据的自增长id
- android radiogroup 获取点击位置_屏幕连点器,解放双手[Android]
- bash 将二进制转换为十进制_一文帮你详细图解二进制、八进制、十进制、十六进制之间的转换...
- 学习channel设计:从入门到放弃
- vue引入外部文件_vue3+typescript引入外部文件
- 命令历史及快捷键介绍
- html微数据,HTML5之 Microdata微数据
- 如何用Lucene实现实时搜索--Tripod
- android 串口工具下载,SerialTool串口调试工具-SerialTool apkv1.2 android最新版_永辉资源网...
- 理解Python装饰器(Decorator)
- python怎么判断日期是星期几_【Java编程基本功】(八)逆序输出、是否为回文数,判断星期几,升序排列...
- js、css基础总结
- 天肌处理器天梯排行榜2022 2022天玑处理器天梯图
- 如何把两个视频拼在一个画面上?这样制作“画中画”
- linux查看进程临时日志,Linux sed查看某时间段的系统日志
- 代码 todo 忘记_永远不要忘记您的仓库项目经理tickgit的TODO评论