数据结构
文章平均质量分 89
Melody袁
这个作者很懒,什么都没留下…
展开
-
数据结构树及相关算法题
树定义树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的结点叫根节点,根节点没有 前驱节点。除根节点外,其余节点被分为M(M>0)个互不相交的集合T1,T2…Tm,其中每一个集合Ti(1<=i<=m)有是一颗与树类似的子树,每颗子树的根节点有且只有一个前驱,可以有0个或者多个后继。树是递归定义的。重要概念节点的度:一个节点含有的子树的个原创 2021-03-31 18:47:08 · 527 阅读 · 0 评论 -
数据结构栈和队列以及常见算法题
栈概念:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。数据结构的栈和jvm运行时内存区域中的stack是啥关系:方法的调用涉及到栈帧,调用一个方法就压栈,方法执行完就出栈。栈帧中有局部变量表,有效的括号:根据括号的匹配原则,选择数据结构为栈。创建一原创 2021-03-21 22:52:31 · 583 阅读 · 1 评论 -
线性表、顺序表以及ArrayList、Iterable、Collection、List中重要的方法
线性表基本概念线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储 > 线性表不允许中间有空洞注意: 顺序表中一定要区分两个概念 容量(capacity) vs 元素个数(size);线性表的所有下标只和元素个数相关,和容量无关 .顺序表是在计算机原创 2021-03-03 22:33:23 · 307 阅读 · 1 评论 -
桶排序
原理:将待排序的数组利用分治法分到若干个桶中然后在桶内进行排序。过程:建立一堆桶桶长度 = 区间总长度 / 区间总个数 = (max - min) / (nums.length - 1)桶个数 = 区间长度 / 桶长度需要定位到桶的时候,一般是 (当前元素 - 最小值) / 桶长度遍历原始数组,并将数据放入到各自的桶当中对非空的buckets进行排序按照顺序遍历这些桶并放回...原创 2019-12-16 19:35:32 · 95 阅读 · 0 评论 -
利用克鲁斯卡尔算法求最小生成树
思路:最小生成树即为无向连通图G的一个子图如果是一颗包含G的所有顶点且权最小的树则称为最小生成树。克鲁斯卡尔算法的基本思想是以边为主导地位,始终选择当前可用的(所选的边不能构成回路)最小权值边。所以第一步是将所有边按照权值从小到大的顺序排序,接下来从小到大依次考察每一条边。具体实现过程如下:<1>设一个有n个顶点的连通网络为G(V,E),最初先构造一个只有n个顶点,没有边的非连通图T...转载 2019-12-08 19:29:40 · 3497 阅读 · 1 评论