JavaScript实现一个简单数据结构栈
来源:互联网 发布:淘宝工业生产许可证 编辑:程序博客网 时间:2024/06/11 23:50
我们将创建一个类来表示栈。首先声明这个类:
function Stack(){ }
接着我们需要一种数据结构来保存栈中的元素。可以选择数组:
var items = [];
接下来,为我们的栈声明一些方法。
push(element): 添加新元素到栈顶
pop(): 移除栈顶的元素, 同时返回被移除的元素。
peek(): 返回栈顶元素,不对栈元素做任何修改。
isEmpty(): 判断栈是否为空, 为空返回true, 否则返回false
clear(): 移除栈里的所有元素。
size(): 返回栈中的元素个数
print(): 遍历栈中的元素。
实现代码部分:
function Stack(){ var items = []; this.push = function(element){ //添加新元素到栈顶 items.push(element) } this.pop = function(){ //移除栈顶的元素 return items.pop(); } this.peek = function(){ //返回栈顶元素 不做任何操作 return items[items.length-1]; } this.isEmpty = function(){ //判断栈是否为空 return items.length == 0; } this.size = function(){ //返回栈中元素的长度 return items.length; } this.clear = function(){ //清空栈元素 items = []; } this.print = function(){ //打印栈中的元素 return items.toString(); }}//利用栈实现进制转换函数function baseConverter(decNumber, base){ //decNumber 为要转化的任意十进制数字 base为要转化为几进制数字 var remStack = new Stack(), rem, baseString = '', digits = '0123456789ABCDEF'; while(decNumber > 0){ rem = Math.floor(decNumber % base); remStack.push(rem); decNumber = Math.floor(decNumber / base); } while(!remStack.isEmpty()){ baseString += digits[remStack.pop()]; } return baseString;}var stack = new Stack();stack.push(6);stack.push(8);stack.push(12);console.log('栈的遍历' + stack.print());console.log('出栈:' + stack.pop());console.log('栈的遍历' + stack.print());console.log('栈的长度为:' + stack.size());console.log('是否为空栈:' + stack.isEmpty());console.log('100345转化为二进制为:' + baseConverter(100345, 2));console.log('100345转化为八进制为:' + baseConverter(100345, 8));console.log('100345转化为十六进制为:'+ baseConverter(100345, 16));
运行结果如下:
阅读全文
0 0
- JavaScript实现一个简单数据结构栈
- JavaScript实现一个简单数据结构树
- 数据结构:JavaScript实现栈
- 数据结构学习二(一个简单栈实现)
- 数据结构栈之javascript实现
- 数据结构之 JavaScript实现栈
- 用javascript实现一个简单计算器
- javaScript简单实例:实现一个简易计算器
- HTML&&JavaScript实现一个简单的计算器
- javascript实现一个简单的二级菜单
- 数据结构栈C++简单实现
- 简单数据结构---数组实现栈
- 数据结构-简单栈的实现
- 数据结构学习三(一个简单的队列实现)
- 数据结构 JavaScript实现 (列表 栈)
- 数据结构:JavaScript实现列表
- 数据结构:JavaScript实现队列
- 数据结构:JavaScript实现字典
- SQL语句,更新字段,新值是旧值的一部分
- 关于java web项目并发锁的理解
- 微软基础类MFC
- 用户态和内核态
- 父元素设置min-height子元素设置100%问题
- JavaScript实现一个简单数据结构栈
- iCarousel 1.8.1版本简介(官方文档翻译)
- Eclipse_4.6.3(neon)新建工程的注意事项
- java命名之良好的命名规范
- bash脚本备忘
- java删除指定目录下指定格式文件
- Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
- 指针习题
- 工作这么久这些软件你都用过吗?第三款说不定你到现在都不知道!