栈的实现 -- 数据结构与算法的javascript描述 第四章
2014-09-12 17:33
323 查看
栈 :last-in-first-out
栈有自己特殊的规则,只能 后进入的元素 ,最先被推出来,我们只需要模拟这个规则,实现这个规则就好。 peek是返回栈顶元素(最后一个进入的)。
/** * 栈 后入先出 * @constructor */ function Stack(){ this.pop = pop; this.push = push //栈顶位置 this.top= 0; this.length = 0; this.dataStore = []; this.peek = peek; this.clear = clear; this.length = length; //返回栈顶元素 function peek(){ return this.dataStore[this.top-1]; } function clear(){ this.top=0; this.dataStore=[]; } function length (){ return this.top; } function pop(){ return this.dataStore[--this.top]; } function push(element){ this.dataStore[this.top++]=element; } function empty(){} } //栈的应用 /** * 进制转换 * @param num 数字 *10进制 * @param base 转换进制 任何进制 * @returns {string} */ function mulBase(num, base) { var s = new Stack(); do { s.push(num % base); num = Math.floor(num /= base); } while (num > 0); var converted = ""; while (s.length() > 0) { converted += s.pop(); } return converted; } var s = mulBase(32,2) console.log(s) /** * 判断字符是否 回文 *回文是指这样一种现象:一个单词、短语或数字,从前往后写和从后往前写都是一样的。 * @param word * @returns {boolean} */ function ishuiwen(word){ var s = new Stack() for(var i=0;i<word.length;i++){ s.push(word[i]) } var foword = ''; while(s.length()>0){ foword+=s.pop() } return word==foword; } var hs = 'aca' console.log(hs+"判断是否回文:"+ishuiwen(hs))
相关文章推荐
- 队列的实现 -- 数据结构与算法的javascript描述 第五章
- 集合的实现 -- 数据结构与算法的javascript描述 第九章
- 链表的实现 -- 数据结构与算法的javascript描述 第六章
- 二叉树的实现 -- 数据结构与算法的javascript描述 第十章
- javascript实现数据结构与算法系列:循环链表与双向链表
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
- JavaScript数据结构与算法(四) 循环队列的实现
- 数据结构与算法(JavaScript实现)
- 数据结构与算法(Java描述)-15、稀疏矩阵以及稀疏矩阵的三元组实现
- javascript实现数据结构与算法系列
- JavaScript数据结构与算法(二) 队列的实现
- JavaScript数据结构与算法(一) 栈的实现
- javascript实现数据结构与算法系列:功能完整的线性链表
- 散列表的实现 -- 数据结构与算法的javascript描述 第八章
- JavaScript数据结构与算法(三) 优先级队列的实现
- 检索算法 -- 数据结构与算法的javascript描述 第13章
- 数据结构与算法-树2-二叉树(javascript描述)
- JavaScript数据结构与算法(七) 双向链表的实现
- 数据结构与算法JavaScript描述[第二章](数组)
- JavaScript数据结构与算法(六) 链表的实现