自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 问答 (1)
  • 收藏
  • 关注

原创 二叉搜索树的删除操作

删除分4种情况: 被删结点没有子树 直接删除 只有左子树 直接删除,左子树接上 只有右子树 直接删除,右子树接上 左右都有 这种最复杂,但也很简单 情况4有2种办法:(通常采用第一种) 找到左子树中的最大结点r,用r替换,再删除r(r肯定是没有右子树,所以删除r采用情况2的办法, 原理是中序前驱替代被删结点) 第二种当然就是找到右子树中最小的,其他类似。。。 BSTnode *...

2019-06-27 16:02:07 916

原创 判断一棵树是否是BST

使用中序遍历, 保存访问过的上一个节点的值,判断当前访问的值是否大于上一个结点的值,如果大于,就满足BST的性质(因为按照中序遍历,结点是递增的) int last = 0; bool isBST(BSTnode *bt) { if(bt == NULL) return true; if(!isBST(bt->lc))//判断左子树 ...

2019-06-25 17:24:43 727

原创 二叉搜索树的基本操作

BST ——binary search tree 为什么叫二叉排序树? 因为BST的中序序列是一个有序序列,所以对于一个任意的关键字序列构造一颗二叉排序树,实质就是对其进行排序,使其变为有序序列 特点: 从BST的构造可以看出,任何结点都是作为叶子结点插入的 对于同一组关键字集合,若排列顺序不同,本节的算法生成的BST可能不同,查找效率也就因此不同 高度越小的BST,查找效率越高...

2019-06-23 21:42:25 165

原创 combinatorial number

编写函数,参数是两个非负整数n和m,返回组合数,其中m≤n≤25。例如,n=25,m=12时答案为5200300。 技巧:化简,避免溢出 typedef long long ll; ll fun(int m, int n){ if(m < n-m) m = n-m;//this is the key ll ans = 1; for(int i = ...

2019-06-04 11:44:56 199

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除