数据结构
文章平均质量分 88
收录常用的数据结构
legendaryhaha
legendaryhaha的博客
展开
-
树|归纳&总结
树|归纳&总结普通二叉树普通二叉树平衡二叉树完全二叉树二叉搜索树多叉搜索树红黑树自平衡二叉搜索树(AVL)前缀树线段树原创 2020-06-01 22:23:33 · 524 阅读 · 0 评论 -
java数据结构里的栈
栈作为一种存储数据的结构,它的原理是后进先出表(Last In First Out,简称LIFO,有人说是先进后出道理一样别被绕晕233)其限制是仅允许在表的一端进行插入和删除运算,把对栈进行运算的一端称为栈顶,另一端称为栈底,当我们向一个栈插入新元素称为入栈或进栈此时调用Push()方法,从栈删除元素称为退栈或出栈,调用Pop()方法。就像子弹夹,先压入子弹的最后才射出。关于它的举例像括号匹配...原创 2018-01-07 11:37:37 · 405 阅读 · 0 评论 -
java数据结构之链表
链表,可分为以下几种:单链表双端链表有序链表双向链表一、单链表在链表中,我们插入的每数据项都可视为包含在链接点(link)中。而每一个链接点是某个类的对象,我们先(下面也是这样)将这个类叫做Link。而这些节点怎样关联在一起呢?这里再引入一个next字段,表示对下一个字段的引用,整个链表的还有一个表头,我们称之为first,数据每次从这里插入,即first指向新插入的...原创 2018-04-07 16:30:33 · 346 阅读 · 0 评论 -
有向图和无向图以及拓扑的复习
备注:大一学了图后,一段时间没用就还给老师了,如今重新复习一下,理解有误的地方请指教。有向图和无向图的定义1)关于有向图,百科中是这样描述的:一个有向图D是指一个有序三元组(V(D),A(D),ψD),其中ψD为关联函数,它使A(D)中的每一个元素(称为有向边或弧)对应于V(D)中的一个有序元素(称为顶点或点)对。理解:如图D,如果e是D的一条边,而这时候存在这样的一个关系,ψD,有A,B...原创 2018-10-14 17:43:36 · 16295 阅读 · 2 评论 -
java合并排序(归并排序)
归并排序:直接上图:即,它把一个数组不断地划分,直到数组长度为1,然后将相邻两个有序子数组段合并为一个有序数组段。一般有两种方式:(1)采用递归分解(2)采用非递归方式分解//递归划分public class MergeSort { static int a[]={0,10,20,5,9,35,58,78,54,32,15,28,79,30,50};//...原创 2018-05-25 18:06:13 · 8647 阅读 · 2 评论 -
java 数据结构队列
队列是基于先进先出的模式(FirstIn First Out,简称FIFO)。队列的操作有:在java中:offer()/add()均可执行入栈的操作,它们的区别是,当超出队列界限的时候,add()会直接抛出异常等你处理,而offer()有事先判断的所以放回falsepop()/remove()方法都是从队列中删除第一个元素,区别是,队列为空时,调用remove()会抛出异常而p...原创 2018-04-05 15:53:22 · 159 阅读 · 0 评论 -
高级排序之快速排序
在写快速排序前我们们可以写一下划分,划分的目的是数组基本有序,怎么使数组基本有序?这需要我们提前选一个值作为枢纽,作为划分数组的关键值,使大的元素和较小的元素分布在这个枢纽的两边,这就需要我们事先对数组里元素有一个大致上的了解。//划分算法public int parititon(int low, int pivot, int up) {//low为数组的第一个元素,piviot即...原创 2018-01-06 18:19:56 · 235 阅读 · 0 评论 -
高级排序之希尔排序
1.前面讲的简单的排序都是连续性的(指每一个元素与其他元素比较都是一个一个的逐一比较的),而哈希尔的排序是跳跃式的( 依靠一个预先设好的增量),基于此,一个元素与其他元素比较时间隔都是h,接着h逐渐缩小,而它又是基于插入排序的,只不过,插入排序每次只与前面的一个元素比较,现在是与前面间隔为h的元素进行比较,通过每次比较后,缩小h的范围后继续用插入排序进行比较从而达到排序的目的。基于此:(1...原创 2018-01-05 17:38:02 · 165 阅读 · 0 评论 -
java里的三种简单排序
在这里只写出这三种排序的思路和代码,关于他们的时间,空间复杂度以及稳定性,将在写完高级排序后做具体分析。一、冒泡排序:顾名思义,将小的(或大的也可以)冒出,将大的沉下去。(这里以将小的元素冒出为例)假设有n个元素,每一次选中一个元素后与后面每一个元素进行比较,若是比后面的元素大,则进行交换,若比后面的元素小则与下一个元素进行比较,直至最大的元素沉到底下即下标值...原创 2018-01-04 19:16:02 · 1047 阅读 · 0 评论