Skip to content

Latest commit

 

History

History
80 lines (60 loc) · 3.75 KB

README.md

File metadata and controls

80 lines (60 loc) · 3.75 KB

数据结构

数据结构分为逻辑结构和存储结构两种。

所有代码都经过具体测试运行,具体环境为:

  • Javascript执行环境: Nodejs 8.0

目录

使用

npm install hzl-data-structures

列表

列表是非常常见的一种数据结构,比如日常所见的购物清单、待办事项等等。 它提供了对列表数据的一系列操作,比如:添加、删除、修改、遍历等功能。 当我们把这样的具体问题抽象成用列表去解决的时候,往往可以简化问题。

let List = require('hzl-data-structures');
let list = new List();

数组

数组是最简单、也是使用最广泛的数据结构。数组是可以在内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。

栈也是一种非常常见的数据结构,在计算机的世界里,在计算机的世界里, 栈是一种很高效的数据结构,因为数据只能在栈顶添加或者删除. 因此栈也被称为一种后入先出的数据结构.栈的使用遍布程序语言实现的方方面面, 从表达式求值到函数调用.

队列

队列是一种前进先出的数据结构. 在日常生活中非常常见:比如去银行排队办理业务. 在计算机中也极其常见, 很多情况下,当有大量任务需要完成时, 就会把任务暂时加入到 任务队列中, 执行一个删除一个,继续执行下一个任务.

链表

有时候数组不一定是最佳的组织数据的数据结构,因为数组通常都是固定大小的,当数据填满时, 再加入新元素就变得很困难。在数组中,添加和删除元素也很麻烦,因为要移动数组中的其他元素。 因此如果需要频繁的添加或者删除元素,可以考虑使用链表组织数据。

集合

散列表

散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。

树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。在日常的应用中,我们讨论和用的更多的是树的其中一种结构,就是二叉树。

堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。

图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

参考

License

MIT