4:【栈】栈_js

2019-11-07  本文已影响0人  狩秋之人
function stuck () {
    let elements = [];
    
    // 存放数据
    this.pushElement = function (element) {
        return elements.push(element);
    };
    
    // 移除栈顶元素
    this.popElement = function () {
        console.log('移除栈顶元素');
        return elements.pop();
    };

    // 显示栈顶数据
    this.peekElement = function () {
        console.log('显示栈顶元素');
        return elements[elements.length - 1];
    };

    // 消除所有元素
    this.clearElements = function () {
        elements = [];
        return '消除成功!' 
    };

    // 判断是否为空
    this.isEmpty = function () {
        console.log('判断栈是否空');
        return elements.length == 0 ? '栈空' : '栈不空';
    };

    this.size = function () {
        console.log('栈大小为:');
        return elements.length;
    };

    this.showAll = function () {
        let temp = []
        elements.forEach(function(x) {
            temp.push(x);
        })
        return temp;
    }

};

// 测试
let stuck1 = new stuck();

stuck1.pushElement(1)
stuck1.pushElement(2)
stuck1.pushElement(3)

console.log('查看所有栈数据。仅供参考,并不提供该方法');
console.log(stuck1.showAll());
console.log('------');
console.log('1. 测试判断栈是否为空');
console.log(stuck1.isEmpty());
console.log('------');
console.log('2. 测试输出栈顶数');
console.log(stuck1.peekElement());
console.log('------');
console.log('3. 测试移除栈顶数');
console.log(stuck1.popElement());
console.log(stuck1.peekElement());
// console.log('------');
// console.log('4. 测试清除元素');
// console.log(stuck1.clearElements());
// console.log(stuck1.isEmpty());
console.log('------');
console.log('4. 测试返回栈大小');
console.log(stuck1.size());
console.log('------');

近期考试周,码字少,但每天代码练习没少。
明天更新栈的一些用法

image.png
上一篇下一篇

猜你喜欢

热点阅读