
数据结构
光影和弦 一抹春色
这个作者很懒,什么都没留下…
展开
-
数据结构
1 数组(线性结构) 数组可以说是最基本最常见的数据结构。数组一般用来存储相同类型的数据,可通过数组名和下标进行数据的访问和更新。数组中元素的存储是按照先后顺序进行的,同时在内存中也是按照这个顺序进行连续存放。数组相邻元素之间的内存地址的间隔一般就是数组数据类型的大小。 2 链表(线性结构+指针) 链表相较于数组,除了数据域,还增加了指针域用于构建链式的存储数据。链表中每一个节点都包含此节点的数据和指向下一节点地址的指针。由于是通过指针进行下一个数据元素的查找和访问,使得链表的自由度更高。 这表现在.原创 2020-05-26 15:25:48 · 201 阅读 · 0 评论 -
算法系列之时间复杂度和空间复杂度
时间复杂度和空间复杂度可以帮助我们根据具体的平台选择合适的算法,要学会以空间换时间或以时间换空间的设计思想,如在单片机等一般是内存空间比较紧张,在追求最优算法时应该可以适当以时间来换空间进行设计,当然在大内存设备上可以选择以空间换时间的设计思想来设计最优算法,所以,时间和空间复杂度可在一定的限制条件下作为判断某个算法或代码块运行快慢的判断方式,主要从如下几个方面了解和学习时间和空间复杂度: 数据结...原创 2020-04-27 16:31:54 · 197 阅读 · 0 评论 -
Hash全解(全网最全解)
一 Hash是一种常见的数据结构或者说计算方法,以其O(1)的时间算法复杂度闻名于世。曾有人说,如果世界上只有一种数据结构,那么我选择hash,足见hash的地位及牛逼之处,而代码编写中hash也屡见不鲜,因为它实在是太常见太好用了 二 应用 关于java中hash的数据结构: 1.并发安全。 对这个需求,java中有了HashTable,为了进一步提升性能,于是有了使用分段锁的Concurren...原创 2020-04-20 12:10:54 · 2100 阅读 · 0 评论 -
趣解哈夫曼树
一 术语 1 路径:在一颗树中,从一个结点到另一个结点所经过的所有结点 被我们称为两个结点之间的路径 在上述二叉树中 从根结点A到叶子结点E的路径就是A B E 2 路径长度 在一颗树中 从一个结点到另一个结点所经过的边的数量 被我们称作为两个结点之间的路径长度 3 带权路径长度 树中的每一个结点 都可以拥有自己的权重 权重在不同的算法当中可以起到不同的作用 结点的带权路径长度=结点权重路径长...原创 2020-04-08 13:12:39 · 2071 阅读 · 0 评论 -
数据结构之二叉树
一 树的简介 树是一种非线性的数据结构,每个数据元素可能与零个或者多个数据元素发生联系 树中每个元素称为结点,为了体现结点之间的关系,分为父节点,子节点,兄弟节点,叶节点,为了更直观的了解这几个基本概念,我们看下图。 概念 解析 节点的深度 根节点到此节点所经历边的个数 节点的层数 节点的深度+1 树的高度 根节点的高度 节点的高度 节点到叶子节点的最...原创 2020-04-06 15:07:37 · 131 阅读 · 0 评论