【发布时间】:2019-05-20 17:39:09
【问题描述】:
我在 geeksforgeeks 网站上阅读了关于在 javascript 和 python 中实现堆栈的文章。我实现了代码以在 javascript 中删除堆栈中的中间元素,这与在同一网站中为 python 给出的完全一样。但我得到错误的答案。为什么会这样?在这种情况下,两种语言有什么区别?如何在 javascript 中获得正确答案?以下是 Javascript 代码。
class Stack {
constructor() {
this.items = [];
}
push(element) {
this.items.push(element);
}
pop() {
if (this.items.length === 0) {
return "Underflow";
} else {
return this.items.pop();
}
}
peek() {
return this.items[this.items.length - 1];
}
isEmpty() {
return this.items.length == 0;
}
print() {
console.log(this.items);
}
}
function deleteMid(stack, curr) {
// If stack is empty or all items
// are traversed
if (stack.isEmpty() || curr == stack.items.length) {
return;
}
// Remove last item
x = stack.peek();
stack.pop();
// Remove other items
deleteMid(stack, curr + 1);
console.log("length value: ", stack.items.length);
// Put all items back except middle
if (curr != Math.floor(stack.length / 2)) {
stack.push(x);
}
}
var stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
stack.print();
deleteMid(stack, 0);
stack.print();
【问题讨论】:
-
你能发布你得到的输出吗?
-
我现在已经添加了输入输出。
标签: javascript data-structures stack