Java数据结构
MDeleter
这个作者很懒,什么都没留下…
展开
-
数据结构——红黑树与B树
红黑树是与2-4树等价的二叉树。因为其是二叉树,因此维持平衡的操作更简单。通常,红黑树由2-3或2-4树分裂而来。得到的子树的根保持黑色,但它的孩子结点会涂上红色。图中用白色替代红色。红黑树的根是黑色的,且每个红色结点都有一个黑色的父结点,且红色结点的孩子都是黑色的。当树为空的时候,新结点将是树的根,因此要添加黑色的结点;当树不为空时,则要添加红色的结点,否则会违背红黑树的特性。并且要知道,添加或删除项可能会改变红黑树中结点的颜色。B树:m阶多路查找树,有时...原创 2022-02-18 15:08:11 · 551 阅读 · 0 评论 -
数据结构——2-3树
2-3树是一颗一般查找树,其内部结点必须有2个或3个孩子。2-结点含有1个数据项s和2个孩子,与二叉查找树的结点一样。数据s大于结点的左子树中的所有数据,且小于右子树中的所有数据。3-结点含有2个数据项s和l,以及3个孩子。小于较小数据项s的数据出现结点的左子树中。大于较大数据项l的数据出现在结点的右子树中。介于s和l之间的数据出现在结点的中间子树中。因为2-3树能含有3-结点,所以它比二叉查找树更低,要使2-3树平衡,需要所有的叶子出现在同一层。所以2-3树是完全平衡树。 ...原创 2022-02-18 14:31:07 · 622 阅读 · 0 评论 -
数据结构——AVL树旋转
AVL树是一颗二叉查找树,需要逻辑规则来检查并修正可能出现的不平衡。package TreePackage;public class AVLTree<T extends Comparable<? super T>> extends BinarySearchTree<T> implements SearchTreeInterface<T>{ public AVLTree() { super();原创 2022-02-18 10:00:53 · 765 阅读 · 0 评论 -
数据结构——二叉搜索树的删除操作
公有方法remove应该仅有一个参数(entry), 所以与调用私有递归方法addEntry的方法add一样,remove将调用一个私有递归方法removeEntry。给removeEntry传递的是树根,而不是树本身。因为该方法可能从树中删除根节点,所以总要保留指向树根的引用。因此给removeEntry再传递外一个参数——oldEntry, 然后在该方法中用删除的项来改变它的值。所以,removeEntry的头应该是private BinaryNode<T> r...原创 2022-02-18 08:04:55 · 1224 阅读 · 0 评论 -
数据结构——二叉查找树(BST)
在二叉查找树中的查找,类似于在数组上的二分查找,但二叉查找树是查找两棵子树中的一棵,而不是查找数组的一半。虽然用树和子树很容易表示递归算法,但根节点同样可以用来查找或操作其后代结点。下面是算法,它的描述接近于实际的实现:Algorithm bstSearch(binarySearchTreeRoot, desiredObject)// 在一颗二叉查找树中查找给定的对象// 如果找到对象则返回真if(binarySearchTreeRoot是空的) return falseels原创 2022-02-17 21:14:18 · 259 阅读 · 0 评论 -
数据结构——ADT队列的链式实现
框架:public final class LinkedQueue<T> implements QueueInterface<T>{ private Node firstNode; private Node lastNode; public LinkedQueue() { firstNode = null; lastNode = null; } private class No原创 2022-02-13 13:31:23 · 463 阅读 · 0 评论 -
方法toArray应该返回复制而不是数组bag
通过声明数组bag是类ArrayBag的一个终态数据成员,可知变量bag中的引用不能改变。虽然这是一种声明数组的的好做法,但数组元素bag[0], bag[1], ...的值还是可以改变的。但必须要阻止客户从bag中得到对数组的引用。否则会泄漏数组内容容易遭受恶意毁坏。例如:public String[] toArray(){ return bag;}这个简单的定义肯定能将包元素所在的数组返回给客户,例如语句:String[] bagArray = myBag.toArr原创 2022-02-10 11:26:42 · 117 阅读 · 0 评论 -
(Java)冒泡,选择,插入,希尔,归并排序与堆排序
基本排序:冒泡,选择,插入,希尔,归并排序与堆排序ADT源代码原创 2021-12-15 11:01:15 · 357 阅读 · 0 评论 -
Java——二叉树的基本构造以及函数
这是二叉树基本结构以及常用函数。(Java)原创 2021-12-04 07:32:56 · 404 阅读 · 0 评论