
Java数据结构
Daria_
这个作者很懒,什么都没留下…
展开
-
顺序表
1原创 2018-11-24 13:40:46 · 151 阅读 · 0 评论 -
BST -- 二叉搜索树(Binary Search Tree)
文章目录一、BST树是具有下列性质的二叉树二、定义BST树三、BST的相关操作1.BST树的插入非递归插入递归插入2.BST树的删除非递归删除递归删除3.查询BST树中是否存在值为data的结点非递归方式查找递归方式查找4.返回BST树中所有结点的个数(递归方式)5.计算BST树的高度(递归方式)6.BST树的遍历前序遍历(VLR)中序遍历(LVR)后序遍历(RVL)层序遍历一、BST树是具有下...原创 2019-07-10 11:25:40 · 1053 阅读 · 0 评论 -
AVL树
文章目录一、AVL树1、AVL树本质上还是一棵二叉搜索树,有以下的特点:2、为了达到节点的平衡,AVL树引入了四种旋转操作:AVL树一、AVL树 在计算机科学中,AVL树是最先发明的自平衡二叉搜索树,在AVL树中任何结点的两个子树的高度差不大于1,所以它也会被称为高度平衡树。增加和删除可能需要通过一次或多次树的旋转来重新平衡这个树。1、AVL树本质上还是一棵二叉搜索树,有以下的特点:首...原创 2019-07-13 15:15:59 · 423 阅读 · 0 评论 -
优先级队列
一、优先级队列优先级队列是零个或多个元素的集合,每个元素都有一个优先级;优先级队列:在入队列时,给每个元素都分配一个数字来标记其优先级,假设数字越小,对应元素的优先级越高,这样就可以在一个元素集合中访问优先级最高的元素并对其进行查找和删除操作。对优先级队列执行的操作有插入(入队)出队(删除优先级最高的元素)删除 (指定优先级的元素)查找(指定优先级的元素)查找队首的元...原创 2019-04-01 19:13:56 · 199 阅读 · 0 评论 -
链式队列
一、链式队列队列的链式表示称为链式队列,其实也就是一个操作受限的单链表。要一个单链表具有队列的性质,即先进先出,在编写代码之前,需要明确:入队:链表添加元素也就是入队列需要采用的是尾插法,即在队尾添加元素;出队:队列不为空时,出队列应该为删除头结点后的第一个结点;如图:二、实现一个链式队列数据结构class Queue<E> { class ...原创 2019-04-01 14:46:01 · 664 阅读 · 0 评论 -
顺序队列
一、队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表;进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端...原创 2019-03-31 17:12:53 · 351 阅读 · 0 评论 -
循环队列
一、循环队列 为充分利用向量空间,克服"假溢出"现象,将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列。喏,百度上找的图片hiahiahia 消除假溢出就是当队尾指针rear和队首指针front到达存储空间的最大值maxsize时,让rear指针自动转化为存储空间的最小值;二、解决指针的转化问题[问题1]:当rear指针到达存储空间最大值ma...原创 2019-03-31 20:28:21 · 382 阅读 · 0 评论 -
Java数据结构总结
一、分类按照逻辑结构分为线性结构:各数据元素之间的逻辑以用一个非线性结构:线性结构非线性结构包括顺序表(数组)、链式表、队列、栈树、图二、线性表顺序表(Array):用一组地址连续的存储空,依次存储线性表的数据元素特点:物理地址相邻的元素,存储的位置也相同链表 (Linked list):用一组任意存储单元存放线性表的数...原创 2019-03-29 16:52:27 · 180 阅读 · 0 评论 -
顺序栈
1原创 2019-03-30 17:20:51 · 240 阅读 · 0 评论 -
链式栈
1原创 2019-03-30 20:44:46 · 659 阅读 · 0 评论 -
双向链表
双向链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。//双向链表class Dlink { class Entry { int data; Entry prev; //指向前驱结点 Entry next; /...原创 2019-03-29 15:39:17 · 182 阅读 · 0 评论 -
循环单链表
循环单链表循环单链表是另一种形式的链式存储结构,它的特点是表中的最后一个结点的指针域指向头结点,整个链表形成一个环;循环单链表与单链表的差别仅为单链表尾结点的指针域为null,循环单链表最后一个数据节点指向的是头结点;写法差别不是很多,只需要注意最后一个结点的指向就好啦class Clink { class Entry { int data; Ent...原创 2019-03-09 20:29:26 · 901 阅读 · 0 评论 -
单链表相关题目
1原创 2019-03-09 20:11:58 · 308 阅读 · 0 评论 -
单链表
一、链表链表是一种物理存储单元上非连续、非顺序性的存储结构,数据元素的逻辑是通过链表中的指针实现的,链表由一系列的结点组成,结点可以在运行时动态生成。...原创 2019-02-25 16:20:15 · 275 阅读 · 0 评论 -
红黑树
红黑树的插入树为空,第一个插入的根节点应该是黑色;树不为空,新插入的节点应该是红色,然后检查parent,parent是黑色则插入完成;parent是红色,需要做红黑树的插入调整:红黑树的插入调整,先看叔叔节点的颜色叔叔节点是红色先把parent和uncle都涂成黑色,再将祖父节点涂成红色parent.color = blackuncle.color = blackpar...原创 2019-07-20 12:36:02 · 600 阅读 · 0 评论