高级数据结构
sspudding
got no fears
展开
-
AVL树
一、概述BST树的查找是通过二分查找的思想,可以很快着找到目的节点,查找所需的最大次数等同于二叉查找树的高度。但是!!!如果在一棵BST树中要按顺序插入1、2、3、4、5、6这几个数,那么就会退化成一条链表,如图示:如果像上图那样的情况发生,BST 树在查找性能上就大打折扣,时间复杂度就退化成线性的了。所以,就有了AVL树(平衡二叉树)。AVL树的特点:首先是一棵BST树,具有BS...原创 2019-07-23 17:25:52 · 413 阅读 · 0 评论 -
红黑树
一、定义为了解决BST树在最坏情况会退化成链表,有了AVL树,但是AVL树为了维护节点平衡,在插入和删除时做了大量的旋转操作,当数据量过大时,AVL树的旋转操作就拖慢了插入删除的时间。为了解决这个问题,就有了红黑树。红黑树的特点:红黑树是不是一棵平衡树红黑树节点左右子树高度差不超过2倍(长的不能超过短的2倍), 牺牲了一些平衡,使得插入删除操作更快红黑树插入最多旋转两次,删除最多旋转...原创 2019-07-24 17:27:23 · 934 阅读 · 2 评论 -
BST树
目录一、BST树二、查找操作递归实现非递归实现三、插入操作递归实现非递归实现四、删除操作递归实现非递归实现一、BST树二叉查找树(Binary Search Tree),又名二叉搜索树或二叉排序树。可以是一颗空树,或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。定义BST...原创 2019-07-23 15:10:20 · 2401 阅读 · 1 评论