全国校区
北京
深圳
上海
广州
武汉
成都
西安
郑州
南京
长沙
Java实验班
Java就业班
Java在职加薪班
Java架构师班
Java夜校班
JavaSE
数据库
JavaWeb
流行框架
分布式
微服务
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,数据结构也是计算机存储、组织数据的方式,通常情况下,良好的的数据结构可以带来更高的运行或者存储效率,往往与性能、优化话题相关。学习算法的捷径就是多刷题说实话,要说捷径,我觉得就是脚踏实地着多动手去刷题,多刷题。但是,如果你是小白,也就是说,你连常见的数...
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。顺序表是在计算机内存中以数组的形式保存的线性表,采用顺序存储结构的线性表简称为“顺序表”。单链表和顺序表尽管都是表,但是有着大不相同的数据结构。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象)+指针(指示后继元素...
数组作为所有数据结构中存储和获取速度最快的一种,凭借其独特的优势在数据存储领域独领风骚。但是数组也有其自身的局限性,造成了一些不可避免的问题。我们都知道数组的长度必须是固定的,且一旦定义之后就无法动态的更改,这就会造成这样的问题,如果数组已满,就无法继续添加数据。为了解决这个问题,人们想到了自定义数组队列的方法...
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法概念的诞生到如今算法体系的成熟,经历了许多的波折,也孕育出了许多的优质算法。算法本身还是人为设计出来的,因此,算法设计要求也是客观存在的。算法中的指令描述的是一个计算,当其运行...
数据结构(datastructure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。基本的数据结构我们都接触过,总体而言还是比较简单的,本文我们就来聊一聊相...
在线性表中,数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继;在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关;在图形结构中,是由顶点的有穷非空集合和顶点之间边的集合组成,如果两个顶点之间存在一条边,那...
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。队列分为顺序队列和循环队列两种,4种队列实现方式,分别为:顺序队列、循环队列、链表队列和数组队列。下面我们一一来看4种队列实现方式:1.顺序队列usin...
所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。二叉树的遍历也分为递归遍历和非递归遍...
哈希表(Hashtable),也叫散列表,是根据关键码值(Keyvalue)而直接进行访问的数据结构。哈希(hashing)是电脑科学中一种对资料的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为哈希,或者哈希值)关联起来,生成一种便于搜索的数据结构(称为哈希表表)。散...
栈是一种特殊的线性表,它只能在一端进行插入或者删除操作,能进行操作的一端称为栈顶,另一端则称为栈底。利用栈的这个特性,我们可以实现表达式的求值。那么如何利用栈来进行表达式求值呢?关于栈的应用—表达式求值如何实现呢,接下来我们带着问题去学习下面的内容。利用栈来进行表达式求值有以下两种方式:一、逆波兰表达式逆波兰表...