Hash的应用: Hash即散列,不像数据结构与算法中讲的各种Hash方法和冲突处理等过多的阐述,以下主要介绍Hash在机试试题解答中的作用。 例2.5 统计同成绩学生人数 普通解法AC代码: 1 #include<cstring> 2 #include<iostream> 3 using name ...
分类:
其他好文 时间:
2019-06-15 20:38:38
阅读次数:
128
集合 集合(set) 是一种包含不同元素的数据结构。 集合中的元素称为成员。 集合的两个最重要特性是: 首先, 集合中的成员是无序的; 其次, 集合中不允许相同成员存在。 对集合的三个操作 + 并集 将两个集合中的成员进行合并, 得到一个新集合。 + 交集 两个集合中共同存在的成员组成一个新的集合。 ...
分类:
编程语言 时间:
2019-06-15 13:49:08
阅读次数:
148
字典 基于Array类构造一个字典类用于储存键值对~~(之前一直不知道JS的Array原来可以存储键值对,第一次看到简直惊呆了)~~ 暂时看到的内容挺简单的,不明白这个的存在意义是什么,感觉还不如直接用JSON来得直接。 直接上代码不解释。 ...
分类:
编程语言 时间:
2019-06-15 13:42:50
阅读次数:
110
散列 基于数组进行设计的数据结构 优点:可以快速插入,删除和取用数据 缺点:查找操作效率低下 在使用散列表存储数据时,通过一个 散列函数 将键映射为一个数字,这个数字的范围是0到散列表的长度。理想情况下从key到index应该是一一对应的,然而键的数量可以是无限的,而数组长度是有限的,因此一个更现实 ...
分类:
编程语言 时间:
2019-06-15 13:42:31
阅读次数:
110
排序二叉树 排序二叉树要求父节点的值大于左节点的值,小于有节点的值。 没有父亲节点的节点称为根节点,没有子节点的节点称为叶子节点,其他都称为中间节点。 用JS实现一个排序二叉树 遍历方式 1. 前序遍历(中间节点→左节点→右节点) 2. 中序遍历(左节点→中间节点→右节点) 3. 后序遍历(左节点→ ...
分类:
编程语言 时间:
2019-06-15 13:37:54
阅读次数:
107
图 定义:图由边的集合及顶点的集合组成。顶点也有权重, 也称为成本。 如果一个图的顶点对是有序的, 则可以称之为有向图。在对有向图中的顶点对排序后, 便可以在两 个顶点之间绘制一个箭头。 有向图表明了顶点的流向。 如果图是无序的, 则称之为无序图, 或无向图。 图中的一系列顶点构成路径, 路径中所有 ...
分类:
编程语言 时间:
2019-06-15 13:34:36
阅读次数:
106
链表 JS中数组被实现成了对象,对比其他语言的数组效率很低。因此可以考虑使用链表来替代。除了对数据的随机访问,链表几乎可以用在任何使用以为数组的情况中。如果需要随机访问,数组仍然是更好的选择。 单向链表 链表是由一组节点组成的集合。 每个节点都使用一个对象的引用指向它的后继。 指向另一 个节点的引用 ...
分类:
编程语言 时间:
2019-06-15 13:29:43
阅读次数:
84
链表分类 单向链表 双向链表 优势: 删除某个节点更加高效, 可以快速找到前驱节点 可以方便的在某个节点前插入元素 循环链表 当要处理的数据具有环形结构的时候, 适合循环链表. 如约瑟夫环问题 双向循环链表 数组的缺点是大小固定, 一旦声明长度就要占用连续的内存空间, 当空间不够用时更换更大的空间, ...
分类:
编程语言 时间:
2019-06-09 16:57:38
阅读次数:
114
排序和查找 排序(Sort)是将无序的记录序列(或称文件)调整成有序的序列。 常见排序方法: 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 1 # ...
分类:
编程语言 时间:
2019-06-07 19:24:49
阅读次数:
104
什么是数据结构? 关于“数据结构”一词的解释众多,比如维基百科中对于“数据结构”的定义是这样的:“数据结构是计算机中存储、组织数据的方式”。又如《数据结构与算法分析》中的解释:“数据结构是ADT(抽象数据类型 Abstract Data Type)的物理实现” 数据结构包括:线性结构和非线性结构。 ...
分类:
其他好文 时间:
2019-05-31 23:13:36
阅读次数:
128