全国校区
北京
深圳
上海
广州
武汉
成都
西安
郑州
南京
长沙
Java实验班
Java就业班
Java在职加薪班
Java架构师班
Java夜校班
JavaSE
数据库
JavaWeb
流行框架
分布式
微服务
数据结构(datastructure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带...
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。在队列的形成过程中,可以利用线性链表的原理,来生成一个队列,也就是所谓的队列的链式实现。基于链表的队列,要动态创建和删除节点,效率较低,但是可以动态增长...
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。数据结构有很多种,一般来说,8种常用数据结构...
栈实际上就是限定仅在表尾进行插入和删除操作的线性表。同时因为只能在表尾进行操作,所以栈又称为后进先出的线性表。既然栈是线性表,而线性表包括顺序表和链表,那么同样地,栈也包括顺序栈和链栈。顺序栈是栈的顺序实现,本文我们就先来讨论一下顺序栈。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(数组)依次存储...
平衡二叉树一般指平衡树((BalanceTree):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋...
线性表是最基本、最简单、也是最常用的一种数据结构。线性表的操作主要分为查找、插入、删除三种,每种操作都对应不同的算法。线性表分为顺序表和链表,而链表又分为单链表和双链表。下面我们来看这三种线性表的查找、插入和删除的相关操作。一、顺序表操作:1.按元素值的查找算法,intfindElem(SqlistL,inte...
数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。而数据元素(DataElement)是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、记录等。数据元素用于完整地描述一个对象,如前一节示例中的一名学生记录,树中棋盘的一个格局(...
数据对象是性质相同的数据元素的集合,是数据的子集。那么,对于数据来说,什么是性质相同呢?相同的性质是指数据元素具有相同数量和类型的数据项,比如人都有姓名、生日、性别等相同的数据项。数据对象实际上是数据的子集,例如:整数数据对象的集合N={1,2,3,4,5,6,7,...};字母数据对象是集合C={'A...
栈和队列作为两种典型的线性表和特殊的数据结构,有着非常鲜明甚至可以说是相互对立的特点;栈先进后出(后进先出),队列先进先出(后进后出)。因此,在相同的输入情况下,两者产生的输出却截然相反。也正是因为这种截然相对的输出,使得他们彼此之间有了更多的联系,比如栈和队列相互实现。简而言之,就是我们可以用栈模拟出队列的输...
二叉树的层序遍历,顾名思义,就是从左到右一层一层的去遍历二叉树。而每一层一层的遍历都和左右节点有着很大的关系。也就是我们选用的数据结构不能一股脑的往一个方向钻,而左右应该均衡考虑。这样我们就选用队列来实现。我们先来看一个简单的二叉树的层序遍历的例子:给定二叉树:[3,9,20,null,null,15,7],3...