二叉查找树相关
来源:互联网 发布:怎么限制软件联网 编辑:程序博客网 时间:2024/05/19 11:37
<pre style="color: rgb(51, 51, 51); font-size: 13px;">#include <iostream> struct Tree{//树结构 int key; Tree *left,*right,*p; }; // 返回指向树中最大值所在节点 Tree* Tree_max(Tree* rt){ while(rt->right!=nullptr) rt=rt->right; return rt; } //返回树中最小值所在节点 Tree* Tree_min(Tree* rt){ while(rt->left!=nullptr) rt=rt->left; return rt; } //返回节点的直接后继节点 Tree* next(Tree *rt){ if(rt->right!=nullptr) return Tree_min(rt->right); Tree *x=rt,*y=x->p; while(y!=nullptr && x==y->right){ x=y; y=y->p; } return y; } //返回节点的直接前驱节点 Tree* pre(Tree *rt){ if(rt->left!=nullptr) return Tree_max(rt->left); Tree *x=rt,*y=x->p; while(y!=nullptr && y==x->left){ x=y; y=y->p; } return y; }//插入节点z,z的左右子树初始化为空void insert(Tree* rt,Tree* z){ Tree* x=rt,y=nullptr; while(x!=nullptr){ y=x; if(z->key<x->key) x=x->left; else x=x->right; } z->p=y; if(y==nullptr) rt=z; else if(z->key<y->key) y->left=z; else y->right=z;}//用y子树来替换x子树,允许y为空树。用于在删除节点的操作中使用void replace(Tree* x,Tree* y){ if(x->p=nullptr){ rt=y;y->p=nullptr; } else if(x==x->p->left){ x->p->left=y; } else x->p->right=y; if(y!=nullptr) y->p=x->p;}//删除节点z,分三种情况解决void Tree_delete(Tree *rt,Tree *z){ if(z->left==nullptr) replace(z,z->right); else if(z->right==nullptr) replace(z,z->left); else{ Tree* y=Tree_min(z->right); if(y->p!=z){ replace(y,y->right); y->right=z->right; y->right->p=y; } replace(z,y); y->left=z->left; y->left->p=y; }}
0 0
- 二叉查找树相关
- 二叉查找树相关判断
- 二叉查找树相关操作实现
- C语言 二叉查找树相关算法
- 数据结构:二叉查找树的相关操作
- 查找--二叉查找树
- 二叉查找树以及相关的几个树
- 二叉查找树(Binary Search Tree)相关操作
- java实现二叉查找树以及相关操作
- 二叉查找树相关算法实现(算法导论12章)
- 数据结构与算法简记:二叉查找树相关操作
- 二叉树的相关操作(2)--各类分支查找
- 二叉树、二叉查找树
- 二叉树 & 二叉查找树
- 【查找结构】二叉查找树
- 查找之二叉树查找
- 查找之二叉树查找
- 查找:二叉查找树总结
- 删除特定字符串
- VS常用编译平台与制作工具
- hdu 1730 Northcott Game Nim博弈~~
- 利用Theme自定义Activity间的切换动画
- 为什么同样是程序员,大牛工资1W,而自己只能拿区区的3K?
- 二叉查找树相关
- [shell脚本]逐行处理文本
- 程序员的强迫症,你有吗?
- Android 的样式与主题
- android-基于Webservice实现天气信息获取及源码下载(一)
- Convert IP addresses from a dots-and-number string to a struct in_addr and back
- (其他app跳转自己app)自定义 URL Scheme 完全指南
- 简单日期
- POJ-2442 Sequence (K路归并问题拓展)