数据结构之栈-JavaScript实现栈的功能

记录自己的学习

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

function Stack(){
    this.data = [];
    this.push = push;        //添一个或多个元素到栈顶
    this.pop = pop;          移除栈顶的元素,同时返回被移除的元素
    this.peek = peek;        返回被移除的元素
    this.isEmpty = isEmpty;  判断栈是否为空,空返回true,否则返回false
    this.clear =clear;       移除栈里的所有元素
    this.size = size;        返回栈内元素的个数
};
 push(ele){
    this.data.push(ele);
};
 pop(){
    return this.data.pop();  利用数组的pop()方法来达到移除栈顶的元素,同时返回被移除的元素
 peek(){
    this.data[this.data.length-1]
};
 isEmpty(){
    this.data.length == 0;
};
 size(){
    .data.length;
};
 clear(){
     [];
};

var sta = new Stack();
sta.push('lily');
sta.push('Tom')
console.log(sta.data)  ['lily','Tom']
var peeka = sta.peek();
console.log(peeka)     Tom
var popa = sta.pop();
console.log(popa)      Tom
console.log(sta.data)  lily

 运用上面实现的stack,实现进制转化

进制转换  10进制转化2进制,8进制,16进制
 baseConverter(number,base){
    var remStack =  Stack(),rem,baseString = '',digits = '0123456789ABCDEF';
    while(number > 0){
        rem = number % base;
        remStack.push(rem);
        number = parseInt(number / base)
    }
    while(!remStack.isEmpty()){
        baseString += digits[remStack.pop()];
    }
    return baseString;
}

var a = baseConverter(15,16)
console.log(a)  F

 

原文地址:https://www.cnblogs.com/guojikun

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)