![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《数据结构》Java语言笔记
Yngz_Miao
这个作者很懒,什么都没留下…
展开
-
【数据结构】堆栈(顺序栈、链栈)的JAVA代码实现
堆栈(stack)是一种特殊的线性表,是一种只允许在表的一端进行插入或删除操作的线性表。表中允许进行插入和删除操作的一端称为栈顶,最下面的那一端称为栈底。栈顶是动态的,它由一个称为栈顶指针的位置指示器指示。当栈中没有数据元素时,为空栈。堆栈的插入操作称为进栈或入栈,堆栈的删除操作称为出栈或退栈。栈的主要特点是“后进先出”,即后进栈的元素先被处理。因此,栈又被称为后进先出(last in fir...原创 2018-03-17 15:46:45 · 10721 阅读 · 0 评论 -
【数据结构】迷宫路径搜索(堆栈)的JAVA代码实现
问题描述迷宫是一个矩形区域,它有一个入口和一个出口,入口位于迷宫的左上角,出口位于迷宫的右下角,在迷宫的内部包含不能穿越的墙或者障碍物。迷宫路径搜索问题就是寻找一条从入口到出口的路径。 基本思路从迷宫的入口出发,沿着某一个方向(如正东)顺时针对当前位置相邻的东、南、西、北4个位置依次进行判断,搜索可通行的位置。如果有,移动到这个新的相邻的位置上,如果新位置是迷宫的出口,那么就已经找...原创 2018-03-17 20:12:01 · 10809 阅读 · 0 评论 -
【数据结构】线性表(顺序表、单链表、双链表、循环链表)的JAVA代码实现
线性表(linear list)是由n(n>=0)个相同类型的数据元素(结点)组成的有限序列。它的实现方式有很多,下面用顺序表、单链表、双链表、循环链表来对它进行实现。 线性表的抽象数据类型数据元素:可以为任意类型,只要同属于一种数据类型即可; 数据关系:数据元素之间呈线性关系; 数据操作:对线性表的基本操作定义在ILinarList中,代码如下:public inter...原创 2018-03-14 19:53:32 · 8450 阅读 · 0 评论 -
【数据结构】图(最短路径Dijkstra算法)的JAVA代码实现
最短路径的概念最短路径的问题是比较典型的应用问题。在图中,确定了起始点和终点之后,一般情况下都可以有很多条路径来连接两者。而边或弧的权值最小的那一条路径就称为两点之间的最短路径,路径上的第一个顶点为源点,最后一个顶点为终点。图的最短路径的算法有很多,本文主要介绍狄克斯特拉(Dijkstra)提出的一种按照长度递增的次序产生的最短路径的算法。 Dijkstra算法介绍Dijkst...原创 2018-04-07 22:48:20 · 47250 阅读 · 11 评论 -
【数据结构】图(深度优先遍历、广度优先遍历)的JAVA代码实现
图的遍历是指从图中的任一顶点出发,对图中的所有顶点访问一次并且只访问一次。图的遍历是图的一种基本操作,图中的许多其他操作也都是建立在遍历的基础之上。在图中,没有特殊的顶点被指定为起始顶点,图的遍历可以从任何顶点开始。图的遍历主要有深度优先搜索和广度优先搜索两种方式。 深度优先搜索算法算法的思想从图中的某一个顶点x出发,访问x,然后遍历任何一个与x相邻的未被访问的顶点y,再遍历任何一...原创 2018-04-07 20:02:32 · 14169 阅读 · 4 评论 -
【数据结构】图(邻接矩阵、邻接表)的JAVA代码实现
图是不同于树的另一种非线性数据结构。在树结构中,数据元素之间存在着一种层次结构的关系,每一层上的数据元素可以和下一层的多个数据元素相关,但只能和上一层的单个数据元素相关。也就是说,树结构的数据元素之间是一种一对多的关系;在图结构中,数据元素之间的关系则是多对多的关系。即图中的每个数据元素可以和图中任意别的数据元素相关,所以图是一种比树更复杂的数据结构。树结构可以看做是图的一种特例。 图...原创 2018-04-07 19:02:44 · 24712 阅读 · 5 评论 -
【数据结构】二叉树(哈夫曼树)的JAVA代码实现
哈夫曼树的基本概念二叉树的经典应用就是哈夫曼(Haffman)树,也称最优二叉树,是指对于一组带有确定权值的叶结点、构造的具有最小带权路径长度的二叉树。二叉树的路径长度是指由根结点到所有的叶结点的路径长度之和。如果二叉树的叶结点都带有一定的权值,则可以将这个概念加以推广。设二叉树具有n个带权值的叶结点,那么从根结点到各个叶结点的路径长度与相应的叶结点权值的乘积之和叫做二叉树的带权路径长度。...原创 2018-04-04 18:11:37 · 10436 阅读 · 8 评论 -
【数据结构】二叉树(遍历方法、递归实现)的JAVA代码实现
二叉树的遍历二叉树的遍历是指按照某种顺序访问二叉树中的每个结点,使每个结点被访问一次且仅被访问一次。通过一次完整的遍历,可使二叉树中的结点信息由非线性排列变成某种意义上的线性序列。也就是说,遍历操作是非线性结构线性化。由二叉树的定义可知,一棵二叉树由根结点、左子树和右子树三部分组成。因此,只需要依次遍历这三个部分,就可以遍历整个二叉树。若以D、L、R分别表示访问根结点、遍历根结点的左子树和...原创 2018-03-31 16:38:57 · 12480 阅读 · 0 评论 -
【数据结构】二叉树(顺序存储、链式存储)的JAVA代码实现
二叉树是一种非线性的数据结构。它是由n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两颗不相交的、被分别称为左子树、右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也可以称做一个结点。二叉树是有序的,即若将其左右两个子树颠倒,就成为另一棵不同的二叉树。这也就意味着,即使某棵二叉树的树中结点只有一棵子树,也同样要区分是左子树还是右子树。 ...原创 2018-03-31 14:30:52 · 11350 阅读 · 0 评论 -
【数据结构】队列(顺序队列、链队列)的JAVA代码实现
队列(queue)是一种特殊的线性表,只允许在表的一端进行插入操作而在另一端进行删除的线性表。进行插入操作的端称为队尾,进行删除操作的一端称为队头。队列中没有数据元素时称为空队列。队列的操作是按照先进先出(first in first out)或后进后出(last in last out)的原则进行的。因此,队列又被称为FIFO表。它的实现方式主要有顺序队列、链队列两种。 队列的抽象数...原创 2018-03-28 20:35:19 · 9541 阅读 · 0 评论 -
【数据结构】串(String、StringBuilder、StringBuffer)的JAVA代码实现
串即字符串,是由0或多个字符组成的有限序列,是数据元素为单个字符的特殊线性表。串从数据结构上来说是一种特殊的线性表,其特殊性在于串中的数据元素是一个个的字符。但是,串的基本操作和线性表的基本操作相比却有很大的不同,线性表的操作主要是针对线性表的某个数据元素进行的,而串上的操作主要是针对串的整体或串的某一部分子串进行的。本文主要介绍Java中的字符串类String、StringBuilder...原创 2018-03-24 20:20:22 · 8677 阅读 · 0 评论