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

简介: 数据结构之栈-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;        //返回栈内元素的个数
};
function push(ele){
    this.data.push(ele);
};
function pop(){
    return this.data.pop();  //利用数组的pop()方法来达到移除栈顶的元素,同时返回被移除的元素
};
function peek(){
    return this.data[this.data.length-1]
};
function isEmpty(){
    return this.data.length == 0;
};
function size(){
    return this.data.length;
};
function clear(){
    this.data = [];
};
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进制
function baseConverter(number, base){
    var remStack = new 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

相关文章
|
5天前
|
JavaScript 前端开发 算法
在JavaScript中的栈数据结构(Stack )
JavaScript 中可以通过数组实现栈数据结构。栈是一种遵循后进先出(LIFO)原则的数据结构,它只允许在栈顶进行插入和删除操作。
7 0
|
2月前
|
存储 JavaScript 前端开发
数据结构之二叉搜索树(BST)--JavaScript实现
数据结构之二叉搜索树(BST)--JavaScript实现
22 0
|
2月前
|
设计模式 JavaScript 前端开发
数据结构之列表-javascript实现
数据结构之列表-javascript实现
73 0
|
8月前
|
存储 算法 JavaScript
数据结构 101:如何在 JavaScript 中构建最小堆和最大堆
数据结构 101:如何在 JavaScript 中构建最小堆和最大堆
437 0
|
10月前
|
存储 算法 JavaScript
数据结构和算法概述 javascript
很多时候,我们无法仅使用简单的数字、字符串、布尔就能完整的描述数据,可能我们希望使用数组、对象、或它们组合而成的复合结构来对数据进行描述。这种复合的结构就是数据结构。而在实际开发中,我们会发现很多场景中使用的数据结构有着相似的特征,于是,数据结构这门学科,就把这些相似的结构单独提取出来进行研究。
数据结构和算法概述 javascript
|
11月前
|
存储 JavaScript 前端开发
🍉JavaScript数据结构之数组及栈
🍉JavaScript数据结构之数组及栈
67 0
🍉JavaScript数据结构之数组及栈
|
11月前
|
监控 JavaScript 前端开发
🍉JavaScript进阶——Set数据结构你了解嘛?ES6看这篇就够啦
🍉JavaScript进阶——Set数据结构你了解嘛?ES6看这篇就够啦
130 8
🍉JavaScript进阶——Set数据结构你了解嘛?ES6看这篇就够啦
|
JSON JavaScript 前端开发
javascript挑战编程技能-第九题:数据结构
javascript挑战编程技能-第九题:数据结构
82 0
|
存储 JavaScript 前端开发
JavaScript数据结构之 Array
几乎所有的编程语言都原生支持数组类型,因为其是最简单的内存数据结构。数组也是 JavaScript 中最常见的数据结构之一,它提供了很多处理存储数据的方法。JavaScript 中,数组是经过改进的对象,和其他语言不同的是,数组中每个槽位可以存储任意类型的数据,这意味着可以创建一个数组,它的第一个元素是字符串、第二个元素是数字、第三个是对象。在 JavaScript 中拥有许多很实用的方法,本文就来总结一下数组中常用的操作方法。
65 0
相关产品
云迁移中心
推荐文章
更多