摘要: 上周五,一个朋友发给我一道面试题,代码如下: 朋友说在控制台跑完的结果是依次打印出 1 2 5 3 4,但是不清楚为什么,希望我帮他分析下。 额,我觉得setTimeout里的那个打印,是在下次事件循环时才会执行的,所以打印结果应该是 1 5 2 3 4 。。。。。 然而,结果并非如此。说明我还处于 阅读全文
posted @ 2018-06-20 16:46 Clover.Han 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 散列 散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用。 散列使用的数据结构叫做 。 在散列表上插入、删除和取用数据都非常快,但是对于查找操作来说却效率低下,比如查找一组数据中的最大值和最小值。 这章看完了比较晕乎,心里不明白散列有什么特别的用处,或者说更适合哪种场景下用。 额,暂时存 阅读全文
posted @ 2018-06-19 19:12 Clover.Han 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 字典 字典是一种以 对形式存储数据的数据结构。 Dictionary 类 Dictionary 类的基础是Array 类,而不是Object 类。 为Dictionary类添加排序功能 字典的主要用途是通过键取值,我们无须太关心数据在字典中的实际存储顺序。然而,很多人都希望看到一个有序的字典。 阅读全文
posted @ 2018-06-19 17:38 Clover.Han 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 链表 概念 链表是由一组 组成的集合。 每个节点都使用一个对象的引用指向它的后继。 指向另一个节点的引用叫做 。 许多链表的实现都在链表最前面有一个特殊节点,叫做 。 链表的尾元素指向一个 节点。 与数组的对比: js中的数据被实现成了对象,与其他语言(比如C++和Java)的数组相比,效率很低。 阅读全文
posted @ 2018-06-19 16:24 Clover.Han 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 队列 Queue 概念 队列是一种列表,但队列只能在队尾插入元,在队首删除元素。 队列是一种先进先出的数据结构,用于存储按顺序排列的数据,被用在很多地方,比如提交操作系统执行的一系列进程、打印任务池等,一些仿真系统用队列来模拟银行或杂货店里排队的顾客。 可以将队列想像成在银行前排队的人群,排在最前面 阅读全文
posted @ 2018-06-15 16:52 Clover.Han 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 栈 Stack 概念 栈是一种高效的数据结构,数据只能在栈顶添加或者删除,所以这样的操作很快,而且容易实现。栈的使用遍布程序语言的方方面面,从表达式求值到处理函数调用。 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。 对栈的操作 将一个元素压入栈(入栈):push( ) 将一 阅读全文
posted @ 2018-06-15 15:03 Clover.Han 阅读(156) 评论(1) 推荐(0) 编辑