
#java数据结构
文章平均质量分 94
java数据结构
积善之家、必有余庆
我相信梦想可以到达的地方,总有一天脚步也可以到达!
展开
-
【源码解析和实现 Arraylist】深入理解
希望这篇博客可以让您对Arraylist集合有更深入了解Arraylist1.Arraylist 源码解析2. Arraylist 源码实现3.Arraylist和Linkedlist、Vector异同1.Arraylist 源码解析1.什么是ArraylistArraylist底层实现就是数组,当元素添加满的时候,数组会动态扩容2.ArrayList主要继承的类和实现的接口ArrayList主要继承了AbstractList类,实现了List、RandomAccess、Cloneab原创 2021-01-25 22:15:46 · 231 阅读 · 0 评论 -
【Java 逆波兰表达式中缀转后缀实现】简单理解
一、中缀转后缀逆波兰表达式 中缀–>后缀思路:两个栈一个保存符号 21,一个存数字 s2,左到右遍历中缀表达式。遇到数字时压入s2中;遇到运算符时:若s1为空,或者 栈顶运算符为“(”,则直接入栈若优先级比栈顶运算符优先级高,入栈;否则把s1栈顶运算符弹出到s2中,接着和新的符号栈顶比较遇到括号时:遇到“(”直接入栈,如果遇到“)”则把s1的栈顶压入s2,直到遇见“(”,然...原创 2020-03-05 00:10:59 · 180 阅读 · 0 评论 -
【Java 环形队列的图解分析 代码实现】简单理解
一、队列队列和我们学过的栈有相似之处,我们都知道,栈遵循先进后出的原则,只有一个口,既是入口也是出口;队列,有两个口,一个出口,一个入口,遵循先进先出的原则。二、环形队列的实现首先我们了解了解java中的求余运算符:%,求余数假设以 0 1 2 3 4 5 为例:这size = 6 个数字我们知道每个数字+1就是他后面的数字,那当走到数字5的时候,没路了,我们想返回0,然后接着从0开始...原创 2020-03-04 23:56:55 · 290 阅读 · 0 评论 -
【Java RBT红黑树 图解代码分析】简单理解
红黑树我会给大家从理论,图析,代码实现来看看红黑树,不难的,大家认真看一、首先什么是红黑树?我们可以看作特殊的AVL树,再通俗说:它的本质还是BST树,万变不离其宗。不过给AVL树加上特有的性质而已,红黑树只有左右旋转两种方式,和AVL树四种旋转相比简单,不过多了节点着色,我们首先来看看红黑树的五大性质:1、节点都有颜色,不是黑色,就是红色2、null表示黑色(叶子节点left和ri...原创 2020-02-26 12:01:41 · 221 阅读 · 0 评论 -
【Java RBT和AVL树的旋转图解】简单理解
AVL树和红黑树的旋转操作我用图解的方式给大家呈现,简单易懂:AVL树的操作,大家可以看我的博客;红黑树这两天马上完成原创 2020-02-25 13:03:25 · 269 阅读 · 0 评论 -
【Java AVL树 图解+代码解析】简单理解
一、什么是AVL树AVL树我们可以看作BST树的一个特殊情况。AVL树就是对BST树失衡的节点用旋转的方式让它达到平衡状态什么情况下为失衡?AVL树要求:任一节点,它的左右子树高度差不超过 1 ,那就是我们对失衡节点通过旋转让它平衡就好例如上图:5 这个节点右子树高度为2,左子树高度为0,所以这个节点就失衡了。如果我们还是用BST树的方式去存储,效率很低,因为5-6-7构成了单链表。...原创 2020-02-24 13:56:19 · 316 阅读 · 0 评论 -
【Java BST树 递归和非递归实现】简单理解
BST树一、基本概念二叉搜索树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树二、创建结点类和二叉树类public class BSTree<T exte...原创 2020-02-21 12:12:55 · 574 阅读 · 1 评论 -
【Java 单向环形链表解决约瑟夫环】简单理解
约瑟夫问题编号从1,2,3…n个人围成一个圈,从第k个人开始从1报数,报到m的人被踢出队伍,下一个人接着从1开始报数,一直循环下去,直到所有人出局,由此产生了一个出队顺序的序列。环形队列...原创 2020-02-03 22:11:55 · 232 阅读 · 0 评论 -
【Java 单链表的增删改查】简单理解
什么是链表?如何操作链表?(增删改查)单链表我们由图可以知道,链表是以节点来存储的,每个节点包含data和next,next域指向下一节点,并且链表各个节点内存并不是连续的常见的我们见的单链表分为两种:有头节点和没有头节点的链表下面我以有头节点的单链表给大家演示:链表的增删改查首先我们创建一个关于人物英雄的节点然后创建英雄人物单链表并且初始化头节点:(头节点:head是不存储信息的...原创 2020-01-28 12:56:17 · 193 阅读 · 0 评论