javascript - 使用2个栈实现队列

标签 javascript php stack queue

谁能告诉我。如何使用2个堆栈实现队列。 具体来说,实现入队和出队方法。

如果你们告诉我 php 或 JavaScript 编程将会很有帮助

最佳答案

这是一个个人示例,我确信它可以进一步优化,但它允许在 JS 中实现队列出列和查看功能。

function processData(input) {
    let stackOne = [];
    let stackTwo = [];
    let parsableInput = input.split('\n');

    for(let i = 1; i < parsableInput.length; i++) {
        // handle 1 push
        if (parsableInput[i][0] === '1') {
            enqueue(stackOne, stackTwo, parsableInput[i].slice(2));
        }
        // handle 2
        if (parsableInput[i] === '2') {
            dequeue(stackTwo);
        }
        // handle 3
        if (parsableInput[i] === '3') {
            console.log(peek(stackTwo));
        }
    }
} 

function enqueue(stackOne, stackTwo, queuedValue) {
    while(stackTwo.length !== 0) {
        stackOne.push(stackTwo.pop());
    }

    stackOne.push(queuedValue);

    while(stackOne.length !== 0) {
        stackTwo.push(stackOne.pop());
       }
}

function dequeue(stackTwo) {
    return stackTwo.pop();
}

function peek(stackTwo) {

    let stringToBeParsed = stackTwo[stackTwo.length - 1];
    let parsedString = stringToBeParsed.slice(0, stringToBeParsed.length);

    if (parsedString) {
        return parsedString;
    } else {
        console.log('Error: there is nothing to peek at!');
    }
}

关于javascript - 使用2个栈实现队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37716113/

相关文章:

javascript - Jquery attr + 2D数组问题

javascript - 无法正确使用 Jquery.load() 功能

php - 使用查询生成器构建动态 Laravel DB 查询

php - 如何通过JQuery/Ajax请求返回最新的Mysql条目

javascript - 预期数组但收到...(JSON)... AngularJS 错误

javascript - 将 PHP 变量传递给 Javascript 函数

php - Amazon EC2 上的 PHP 应用程序架构

node.js - React-navigation-camera 与 React-navigation-stack 冲突并且

C++ Stacks Pop 通论

javascript - 从 NodeJS 中抛出的字符串获取堆栈跟踪