江辰

博客

JS 实现出入栈操作

发布于 # JS

栈 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称之为栈顶。栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。盘子就是最好的例子,最后叠入的盘子,总是最先出去。 实现 function stack() { this.dataStore = []; //初始化数组 this.topa = 0; //栈位 this.pop = pop; //出栈 this.push = push; //入栈 this.clear = clear; //清楚栈 this.length = length; //返回栈的长度 } function pop() { return this.dataStore[--this.topa]; } function push(element) { return t

JS 实现列表操作

发布于 # JS

列表 人们经常使用列表,比如待办事项列表、购物车等,如果数据不太多的话,列表就显得尤为有用。 JS 实现 function list() { this.dataStore = []; //初始化数组 this.clear = clear; //清除列表 this.remove = remove; //移除列表中的元素 this.find = find; //寻找列表中的元素 this.length = length; //返回列表的长度 } function find(element) { for (var i = 0, len = this.dataStore.length; i < len; i++) { if (this.dataStore[i] === element) { return

JS 实现各种排序

发布于 # JS

冒泡排序 冒泡排序是一种把数字两两交换的排序,时间复杂度为 O(n2)。 function bubbleSort(array) { if (array.length < 1) { return; } var temp; var len = array.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len; j++) { if (array[i] < array[j]) { temp = array[i]; array[i] = array[j]; array[j] = temp;

JS 实现斐波那契数列

发布于 # JS

斐波那契数列 0,1,1,2,3,5,8 像这样的数列就是斐波那契数列,特点是第 n 项等于前两项的和。 递归实现 function fib(n) { if (n == 0) { return 0; } if (n == 1) { return 1; } return fib(n - 1) + fib(n - 2); } console.log(fib(5)); 迭代实现 function fib(n) { var a = 0, b = 1, total = 0; if (n < 2) { return n; } for (var i = 2; i <= n; i++) { total = a + b;