自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 基于链表的AVL实现(java)——树结构学习(2)

上一节中介绍并实现了二叉搜索树,它有一个明显缺陷,当按某种顺序插入Node构建的树高度接近N,那么增删查的时间复杂度退化为O(N),AVL可以有效的弥补这方面缺陷,简单来说AVL在每次完成BST的增删操作后,会对树结构进行旋转以维持树的高度在。树的高度以Node为根的树的高度等于Node到每个叶子的最大值,规定null的高度为0,一个Node的高度为1,三个Node组成的满二叉树高度为2,以此类推。//以该Node为根的树高度 public static int getHeight(N

2021-08-20 14:42:09 129

原创 用空间复杂度O(1)的方法实现数组旋转(java)

最近在刷一道leetcode算法时,遇到这么一道题:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数,如何用空间复杂度O(1)方法实现。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入:nums = [-1,-100,3,99],

2021-08-14 23:04:30 341

原创 基于链表的二叉搜索树实现(java)——树结构学习(1)

在链表实现的二叉搜索树中,对于每一个Node需满足:左子Node < Node <= 右子Node,最好情况下二叉搜索的高度为,此时查找、增加、删除的平均时间复杂度为,最差情况下即按照某种顺序插入Node构建的树高度为N,此时增删查的平均时间复杂度为O(N)。代码分为Node类,二叉树抽象类,二叉搜索树实现类。目录BinaryNode类(简称Node)BinaryTree二叉树抽象类(便于后面扩展)中序遍历BinarySearchTree(继承自BinaryTree).

2021-08-13 12:23:53 260

空空如也

空空如也

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

TA关注的人

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