数据结构
俱往矣_wpt
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
已知前序遍历序列和中序遍历序列,确定唯一的一棵二叉树和后序遍历序列
已知前序遍历序列和中序遍历序列,可以唯一确定一棵二叉树。 已知后序遍历序列和中序遍历序列,可以唯一确定一棵二叉树。 但是已知前序遍历序列和后序遍历序列,是不能确定一棵二叉树的。下面例子通过前序遍历和中序遍历确定唯一的一棵二叉树。前序遍历:EACBDGF中序遍历:ABCDEFG1、首先根据前序遍历找出根节点是E,然后根据中序遍历可以知道ABCD是E的左子树,FG是E的右子树。...原创 2019-06-19 10:12:54 · 12442 阅读 · 2 评论 -
Java实现几种常见的排序算法
1、冒泡排序从前往后让相邻位置的两个数字比较,这样可以把最大的或最小的放到末尾位置,如果最大的数字是在第一个位置,那么这个数字每次比较都会往后移动一位,直到末尾位置,其他数字同理。 public void bubbleSort(int a[]) { int i, j, t; for (i = 0; i < a.length - 1; i++) { for (j ...原创 2019-06-10 17:42:21 · 333 阅读 · 0 评论 -
最短路径 Dijkstral算法 和 Floyd算法
Dijkstral算法:从起点A出发,可以直接到达的点是B、D、E,lowcost={max,10,max,30,100},visit={1,0,0,0,0},lowcost从A到其他节点的距离,visit已经找过的节点找出和A相连的边中最短的,A->B边时最短的,这个时候我们可以知道A到B的最短路是10,这个时候我们需要比较是从A直接到达B、C、D、E距离短还是通过B作为中转更...原创 2019-07-09 14:56:58 · 423 阅读 · 0 评论 -
最小生成树 Prime算法 和 Kruskal算法
最小生成树保证一个图中的所有节点可以到达其他的任何节点,且连接这些节点的线的总和最小,此时这些节点和线组成最小生成树。如上面的图的最小生成树就是:10+11+12+8+16+19+7+16=99Prime算法:在prime算法中,先从任何一个节点A(可以是任何一个节点,对最小生成树的构造没有影响)出发,记录和节点A有连接的所有线,这部分在代码中是: ...原创 2019-07-08 18:26:50 · 1292 阅读 · 0 评论 -
Java 集合 HashMap
Hashmap主要用哈希表(也叫散列表)实现,而哈希表的实现主要用到数组和链表(红黑树),先说哈希表。哈希表的功能主要是方便查找,大概原理就是通过一系列的计算得到一个数字作为物理存储地址,查找的时候只需要对查找元素进行hash然后去得到的地址查找元素是否存在,如果该地址有元素代表查找成功,没有代表查找的这个集合中不存在这个元素。但是哈希值通过一个设定的表达式计算出来的,在某些情况下不同元素...原创 2019-06-26 15:52:59 · 364 阅读 · 0 评论 -
二叉树
二叉树是n(n>=0)个结点的有限集合,二叉树中的节点最多只能有两个子结点。二叉树的特点:每个节点最多有两个子树,所以每个节点最多只能有两个子结点。 左子树和右子树是有顺序的,次序不能任意颠倒。 即使树中某个节点只有一棵子树,也需要区分它是左子树还是右子树。二叉树具有五种基本形态:空二叉树 只有一个根结点 根结点只有左子树 根结点只有右子树 根结点既有左子树又有右子...原创 2019-06-18 17:39:36 · 815 阅读 · 0 评论 -
栈和队列
栈:栈是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称后进先出的线性表,简称LIFO结构。理解栈的定义需要注意:首先它是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系。只不过它是一种特殊的线性表而已。定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指栈顶,而不是...原创 2019-06-18 11:16:11 · 218 阅读 · 0 评论 -
线性表
线性表:零个或多个数据元素的有序序列。线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。线性表的长度是有限的,n不能无穷大。除了第一个元素没有前驱元素,最后一个元素没有后驱元素,其他每个元素都有一个前驱元素和一个后驱元素。线性表在逻辑结构上属于线性结构,有两种物理结构,分别是顺序存储结构和链式存储结构。顺序存储结构:线性表的顺序存储结构指的是用一...原创 2019-06-18 11:07:20 · 1893 阅读 · 1 评论 -
数据结构中的逻辑结构和物理结构
按照视点的不同,我们把数据结构分为逻辑结构和物理结构。一、逻辑结构:是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种:1、集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。2、线性结构:线性结构中的数据元素之间是一对一的关系。3、树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。4、图形结构:图形结构的数据元素是多...原创 2019-06-18 10:56:28 · 10469 阅读 · 0 评论 -
二叉排序树
二叉排序树:对于每个结点的值来说,左子树上所有结点的值都小于它,右子树上所有结点的值都大于它。对集合{62,88,58,47,35,73,51,99,37,93}构建二叉树上图的构造方式就是按顺序找位置,62做根结点,88比62大放到右子树,58比63小放左子树……对二叉排序树进行中序遍历,遍历结果一定是有序的。对上图二叉树进行中序遍历:35,37,47,51,58,62,73,8...原创 2019-06-20 17:42:06 · 1926 阅读 · 0 评论 -
哈夫曼树-哈夫曼编码
哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。如果需要传输一段文字“BADCADFEED”,可以用二进制编码表示。这个时候数据编码后是“0...原创 2019-06-19 15:03:28 · 2225 阅读 · 0 评论 -
hashCode及HashMap中的hash()函数
原帖地址:https://www.cnblogs.com/NathanYang/p/9427456.html一、hashcode是什么要理解hashcode首先要理解hash表这个概念1. 哈希表hash表也称散列表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映...转载 2019-07-13 16:03:31 · 338 阅读 · 0 评论
分享