链表的组成:链表头+结点 链表头一般只存储下一个节点的引用 节点:存数据+下一个节点的引用链表头代码:package com.xingej.algorithm.datastructure.linkedList.singleLinkedList;
/**
* 声明一个链表的头部
*
分类:
编程语言 时间:
2017-12-08 16:50:40
阅读次数:
163
优先队列(堆)的定义 堆(英语:Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问 ...
分类:
编程语言 时间:
2017-12-07 22:37:33
阅读次数:
274
packagecom.xingej.algorithm.datastructure.stack;/***数据结构之栈Stack**以long类型为测试用例**@authorerjun2017年12月4日下午10:22:34*/publicclassLongStack{//底层数据存储privatelong[]arr;//最大元素数量privateintmaxSize;//当前元素的指针privat
分类:
编程语言 时间:
2017-12-07 10:58:33
阅读次数:
171
自定义数组(面向对象编程):直接上代码:package?com.xingej.algorithm.datastructure.array;
/**
?*?面向对象编程
?*?
?*?自定义类数组
?*?
?*?你一定要明白,这是在JDK基础之上的封装,要学会这种思路,其他框架如netty
分类:
编程语言 时间:
2017-12-06 10:38:56
阅读次数:
152
目录 1、冒泡排序 2、选择排序 3、插入排序 4、总结 上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法。 回到顶部 1、冒泡排序 这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的时候是比较小的,随着慢慢向水面浮 ...
分类:
编程语言 时间:
2017-12-01 15:10:40
阅读次数:
294
上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法。 1、冒泡排序 这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的时候是比较小的,随着慢慢向水面浮起会逐渐增大,这物理规律我不作过多解释,大家只需要了解即可。 冒泡算 ...
分类:
编程语言 时间:
2017-12-01 11:46:12
阅读次数:
202
上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍。本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要的数据结构,当然每种语言对数组的实现和处理也不相同,但是本质是都是用来存放数据的的结构,这里我们以J ...
分类:
编程语言 时间:
2017-11-29 10:21:26
阅读次数:
236
AVL树的定义 在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下的时间复杂度都是。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G. M. Adels ...
分类:
编程语言 时间:
2017-11-27 23:46:33
阅读次数:
234
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通 ...
分类:
编程语言 时间:
2017-11-27 23:34:04
阅读次数:
123
二叉查找树定义 二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 二叉查找树相比于其他数据结构的优势在于查找、插入的时 ...
分类:
编程语言 时间:
2017-11-27 00:01:08
阅读次数:
275