JS数据结构初识(一)-栈

1、定义

栈是一种听从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称做栈顶,另外一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 栈也被用在编程语言的编译器和内存中保存变量、方法调用等。典型的有函数调用。git

1.1 栈的建立

// 后进先出
    function Stack() {
        const items = [];
        this.push = (...ele) => items.push(...ele);
        this.pop = () => items.pop();
        this.peek = () => items[items.length-1];
        this.isEmpty = () => !items.length;
        this.size = () => items.length;
        this.clear = () => items = [];
        this.print = () => console.log(items);
    }

    const stack = new Stack();
    stack.push(1,2,3,4);
    stack.print();
复制代码

1.2 进制转换

// 任意进制
    function baseTransform(decNumber, base) { // 被除数
        const remStack = new Stack();
        let rem; // 余数
        const digits = '0123456789ABCDEF';
        let result = '';
        while (decNumber > 0) {
            rem = decNumber % base;
            remStack.push(rem);
            decNumber = Math.floor(decNumber / base);
        }

        while(!remStack.isEmpty()) {
            result += digits[remStack.pop()];
        }
        console.log('result => ',result);
        return result;
    }
    baseTransform(10, 2); // => 1010
复制代码

2、总结

栈是最简单的数据结构,遵循的是后进先出的原则。编程

相关文章
相关标签/搜索