《数据结构与算法分析》--二叉查找树
2017-01-17 20:39
78 查看
二叉查找树的结构:
二叉查找树的操作声明:
二叉查找树相对来说比较简单,操作较少。在上述操作中,最难的是Delete操作,Delete操作一定要分为四种情况。
struct TreeNode { ElementType element; TreeNode* left; TreeNode* right; }; typedef TreeNode* SearchTree; typedef TreeNode* position;
二叉查找树的操作声明:
//清空树 SearchTree MakeEmpty(SearchTree t) { if(t!=NULL) { MakeEmpty(t->left); MakeEmpty(t->right); free(t); } return NULL; } //插入操作 position Insert(ElementType x,SearchTree t) { if(t==NULL) { t=new TreeNode; t->element=x; t->left=t->right=NULL; } else { if(x < t->element) { t->left=Insert(x,t->left);//左子树指向左儿子 } if(x > t->element) { t->right=Insert(x,t->right);//右子树指向右儿子 } } return t;//返回的是根节点的地址 } //删除操作 position Delete(ElementType x,SearchTree t) { position tmp; if(t==NULL) return NULL; else if(x < t->element) { t->left=Delete(x,t->left); } else if(x > t->element) { t->right=Delete(x,t->right); } else if(t->left && t->right) { temp=FindMin(t->left); t->element=temp->element; t->right=Delete(t->element,t->right); } else { temp=t; if(t->left==NULL) t=t->right; if(t->right==NULL) t=t->left; free(temp); } return t; } //查找操作 position Find(ElementType x,SearchTree t) { if(t==NULL) return NULL; else if(x < t->element) { return Find(x,t->left); } else if(x > t->element) { return Find(x,t->right); } else return t; } //查找最大值操作 position FindMax(SearchTree t) { if(t==NULL) return NULL; else if(t->right!=NULL) return FindMax(t->right); else return t; } //查找最小值操作 position FindMin(SearchTree t) { if(t==NULL) return NULL; else if(t->left!=NULL) return FindMin(t->left); else return t; }
二叉查找树相对来说比较简单,操作较少。在上述操作中,最难的是Delete操作,Delete操作一定要分为四种情况。
相关文章推荐
- 二叉查找树 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 数据结构与算法分析生成N节点随机二叉查找树
- 二叉查找树(数据结构与算法分析代码)
- [数据结构与算法分析] 二叉查找树的基础概念,插入以及删除
- (数据结构与算法分析 五)------二叉查找树的实现( Java语言描述)
- 数据结构与算法分析(三) —— 二叉查找树的实现
- 基于 Python 的数据结构与算法分析学习记录(6-11)—— 二叉查找树与操作
- 数据结构与算法分析--二叉排序树(二叉查找树,二叉搜索树)的查找、插入和删除操作
- 数据结构与算法分析-树、二叉树、二叉查找树
- 《数据结构与算法分析》 第四章 树(二)---二叉树,二叉查找树
- 【算法】数据结构与算法分析学习笔记——各类二叉查找树的吐血整理
- 数据结构与算法分析-二叉查找树的实现
- 二叉查找树 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 【数据结构与算法分析】二叉查找树与AVL树
- 数据结构与算法分析课后习题第三章(2)
- 《数据结构与算法分析》5000字缩写(上)
- 数据结构与算法分析(C语言描述)源代码与答案
- 数据结构与算法分析-查找二叉树
- Pku acm 2075 Tangled in Cables数据结构题目解题报告(十一)最小生成树:prim算法&amp;amp;二叉查找树
- 数据结构与算法分析-AVL树的实现