数据结构与算法
阳光下的冷静
本人很菜,分享自己平时学习前端的小知识点,希望对大家有用。
展开
-
图的广度优先遍历和深度优先遍历
深度优先遍历和广度优先遍历转载 2019-11-14 15:42:08 · 314 阅读 · 0 评论 -
二叉排序树
二叉排序树转载 2019-11-14 15:01:18 · 184 阅读 · 0 评论 -
红黑树详解
红黑树详解转载 2019-07-26 11:54:24 · 133 阅读 · 0 评论 -
字符串常量和字符常量的区别
字符串常量:以双引号引起来的数据,如"he123" ,"a"。字符常量:以单引号引起的一个字符,如'a' , '\n'。原创 2019-01-05 20:24:18 · 4594 阅读 · 0 评论 -
js实现数据结构--集合
什么是集合?集合是由一组无序且唯一(即不能重复)的项组成的容器,你可以把集合想象成一个既没有重复元素,也没有顺序概念的数组。集合的特点:没有重复元素 元素之间没有顺序js实现集合的定义及相关方法操作(基于ES5)首先是集合的定义和基本方法的定义,见如下代码://创建集合 function Set() { //定义集合的基本属性 le...原创 2018-11-28 21:03:44 · 1134 阅读 · 2 评论 -
js实现数据结构--无向图
图的概念:图是网络结构的抽象模型,是一组由边连接的节点(或节点)。学习图很重要,任何二元关系都可以用图来表示,比如可以用图来表示道路,航班,以及通信状态等。一个图G=(V,E)由以下元素来表示,V是一组顶点;E是一组边,连接V中的顶点。图的相关术语:相邻顶点:由一条边连接在一起的顶点 节点的度:一个节点的相邻顶点的数量 路径:一个顶点v1,v2,v3.. vk的一个连续序列,其中v...原创 2018-12-01 10:46:36 · 884 阅读 · 0 评论 -
js实现数据结构--双链表
双链表的概念:双链表也叫双向链表,是链表的一种,它的每个数据结点中除了本身的元素节点还有两个指针,分别指向直接后继和直接前驱。所以,从双链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。双链表的结构如下图所示:双链表的特点: 每个数据节点除了本身的元素节点之外,还有两个指针,分别指向直接后继节点和直接前驱结点 从链表中添加或者删除节点不需要移动其他的节点 双链...原创 2018-11-27 21:45:55 · 143 阅读 · 0 评论 -
js实现排序和搜索算法
排序算法:我们已经知道有一些常见的排序算法,如冒泡排序,选择排序, 插入排序, 归并排序,快速排序和堆排序。下面我们逐个地分析并编写相关代码。首先在排序之前,我们需要先创建一个数组来表示待排序和搜索的数据结构以及数组操作中最常见的交换位置函数swap。代码如下:function ArrayList() { var array = []; this.in...原创 2018-12-02 22:29:38 · 676 阅读 · 2 评论 -
js实现数据结构--单链表
单链表的概念:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。下图展示了一个单链表的结构图:单链表的特点:每个元素除了由元素本身的节点还有指向下一个元素的指针构成 从链表中添加或者删除元素不需要移动其他的元素 访问链表中间的一个元素,需要从表头开始迭代列表直到找到所...原创 2018-11-26 21:41:40 · 551 阅读 · 0 评论 -
js实现数据结构--树
什么是树?树是一种分层数据的抽象模型。现实生活中最常见的树的例子就是家谱,或是公司的组织架构。树的结构图:如下图树的相关术语:一棵树包含一系列存在父子关系的节点。每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个子节点.下面介绍几个常见的树的术语。根节点:位于树顶部的节点,它没有父节点 内部节点:至少有一个子节点的节点 外部节点:没有子节点的节点,也称为叶节点...原创 2018-11-29 20:34:42 · 1141 阅读 · 0 评论 -
js实现数据结构--散列表
什么是散列表?散列表(Hash table)也叫哈希表,是根据关键码值(Key value,键值)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。散列表的特点:散列表中的每个元素有一个键值和键值所对应的数值 查找散列表中的元素必须得首先根据键值,通过散列函数找到元素所在的位置才能访...原创 2018-11-29 19:56:44 · 261 阅读 · 0 评论 -
js实现数据结构--字典
什么是字典?字典也称映射,是一些元素的结合,字典中的元素也是互不相同且不重复的。字典与集合很相似,集合以[值, 值]的形式存储元素,字典则以[键,值]的形式来存储元素。字典的特点:字典中的元素互不相同 字典中的元素不重复 字典中的元素以[键,值]的形式存在生活中字典的典型例子:生活中字典的例子:如单词和它的释义,地址簿等js实现定义字典及一些基本方法:首先是定义字典的...原创 2018-11-28 21:32:06 · 961 阅读 · 0 评论 -
js实现数据结构--数组
1 创建数组:(1)var days = new Array()(2)var days = new Array(7),指定数组的长度(3)var days = new Array('Sunday', 'Monday', 'Tuesday') 在创建数组的同时初始化数组但在js中不建议这样创建数组,最好的创建数组的方法是:var days = [];2 访问数组元素:访问...原创 2018-11-23 09:34:24 · 366 阅读 · 0 评论 -
js实现数据结构--栈
栈的定义:栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。栈的特点:后进先出:新元素都靠近栈顶,旧元素都接近栈底,所以新元素会比旧元素要先出栈生活中栈的体现:放在桌子上的一堆书和餐厅里堆放的盘子JS语法定义栈以及相关的方法:创建栈:创建一个类来表示栈,声明栈的各种属性和方法,代码如下://声明栈和...原创 2018-11-23 09:19:20 · 472 阅读 · 0 评论 -
js实现数据结构--队列
队列的概念:队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并在头部移除元素,队列的元素也可以是任何类型的。队列的特点:先进先出,最新添加的元素必须排在队列的末尾,最先移除的元素必须是头部第一个元素生活中的队列:在电影院, 自助餐厅, 杂货店收银台,我们所排成的队伍就是队列,排在第一位的人会先接受服...原创 2018-11-23 20:48:26 · 123 阅读 · 0 评论