随笔分类 -  JavaScript算法与数据结构

摘要:完整代码: 阅读全文
posted @ 2017-11-06 17:51 seafwg 阅读(370) 评论(0) 推荐(0)
摘要:二叉树的创建:binary search tree 3、二叉树上的查找: 4、删除二叉查找树上的节点 阅读全文
posted @ 2017-10-30 17:37 seafwg 阅读(218) 评论(0) 推荐(0)
摘要:集合(Set):是一种包含不同元素的数据结构。 重要特性:1.集合中的成员时无序的;2.集合中不允许相同的成员存在。 使用场景:用于存储一些独一无二的元素。 1 集合的定义:(和高中数学中的集合一样)是有一组无序且彼此之间又有一定相关性的成员构成,每个成员只能出现一次。 1.1基本概念: 空集:不包 阅读全文
posted @ 2017-10-27 14:58 seafwg 阅读(262) 评论(0) 推荐(0)
摘要:散列:实现散列表的数据后可以快速地实现插入或者删除。但是对于实现查找操作则效率非常的低。散列表的底层是数组实现的,长度是预先设定,可以随时根据需求增加。所有的元素根据和该元素对应的键,保存在特定的位置。使用散列表存储数据时,通过一个散列函数将键值映射为一个数字,数字的范围是0-散列表的长度。碰撞(collision):理想状态下散列函数会将每一个键值映射成一个唯一的数组索引。但是健的数量是无限的,... 阅读全文
posted @ 2017-10-26 17:58 seafwg 阅读(283) 评论(0) 推荐(0)
摘要:下面是测试部分:(有点小兴奋哦~~) 输出结果: 第一次:1 2 4 5 6 7 8 9 10 第二次:1 2 4 5 7 8 9 10 第三次:1 2 4 5 7 8 10 第四次:1 4 5 7 8 10 第五次:1 4 5 8 10 第六次:4 5 8 10 第七 阅读全文
posted @ 2017-10-17 16:28 seafwg 阅读(448) 评论(0) 推荐(0)
摘要:数组的缺点:数组的长度固定,增删时比较困难要移动元素,而且数据填满再添加元素比较复杂。js:数组有split(),可以任意的分割。不存在上述问题。主要问题是:js数组都被实现成了对象,和其他语言的数组比较而言效率低。 一.单向链表: 有一组节点组成的集合,每一个节点都使用一个对象的引用指向它的后继。指向另一个节点的引用叫做链。 插入元素:只需修改前驱节点,使其指向新的节点,而新加入的节点指向原... 阅读全文
posted @ 2017-10-16 16:22 seafwg 阅读(238) 评论(0) 推荐(0)
摘要:排序总结————常见的排序 常见的9中排序(冒泡,选择,插入(二分插入,希尔),归并,快速,堆,计数,基数,桶排序)可分为两类 比较排序:冒泡,选择,插入(二分插入,希尔),归并,堆,快速 非比较排序:计数,基数,桶排序 var arr = [298,113,138,96,78,203,56,11]; function testMap(a... 阅读全文
posted @ 2017-08-22 14:27 seafwg 阅读(177) 评论(0) 推荐(0)
摘要:5.1 队列的操作 队列是特殊的列表,只能一端入队(队尾)插入操作,一端出队(队头)删除操作。底层用数组,利用javascript数组优于其它语言的数组的方法,shift();删除第一个元素,push();队尾添加元素。分别对应出队,入队操作。 队列是一种先进先出的数据类型(FIFO); 一些常见用 阅读全文
posted @ 2017-08-04 15:18 seafwg 阅读(166) 评论(0) 推荐(0)
摘要:4.1栈是一种高效的数据结构,是一种特殊的列表。栈内元素只能通过列表的一端访问,也就称为栈顶。后入的先出的操作。Last in First out.所以他的访问每次是访问到栈顶的元素,要想访问其余的元素必须要它上面的元素出栈操作后才能访问。 有两个主要的方法: push();入栈操作 pop();出 阅读全文
posted @ 2017-08-04 15:17 seafwg 阅读(190) 评论(0) 推荐(0)
摘要:3.1 列表的抽象数据类型定义 列表:一组有序的数据。每个列表中的数据称为元素。在JavaScript中列表的元素可以是任意的数据类型。列表中保存的元素没有事先的限定,实际使用时的元素数量受到程序内存的限制。 属性: listSize: 列表的元素个数 pos: 列表的当前位置 length: 返回 阅读全文
posted @ 2017-08-04 15:13 seafwg 阅读(179) 评论(0) 推荐(0)