繁体   English   中英

卡在 JavaScript 堆栈算法中

[英]Stuck in a JavaScript stack algorithm

isEmpty() 算法要求我在堆栈不包含任何值时返回 true,而在堆栈包含一个或多个值时返回 false。 它还要求在不修改堆栈的情况下完成此操作

我只能使用3种方法

  • .pop() 弹出堆栈的顶部值

  • .push() 将值压入堆栈

  • .peek() 显示堆栈的最高值而不修改堆栈

我尝试以这种方式执行算法,但它只完成了最后两个要求,即当堆栈包含一个或多个值时返回 false 以及不修改堆栈但当堆栈不包含任何值时它不会返回 true enter image description here

function isEmpty(stack) {
if(stack!==''){
  return false
}else if(stack===''){
  return true
}
}
function isEmpty(stack) {
  if (stack.peek() === undefined) {
    return true;
  } else {
    return false;
  }
}

或者

function isEmpty(stack) {
  return stack.peek() === undefined;
}

这是您可以使用 peek() 方法解决此问题的一种方法:

function isEmpty(stack) {
if(stack.peek() === undefined){
    return true;
}else{
    return false;
}
}

另一种方法是使用 pop() 方法,但您必须再次将值添加到堆栈中:

function isEmpty(stack) {
var temp = stack.pop();
if(temp === undefined){
    return true;
}else{
    stack.push(temp);
    return false;
}
}

只需检查peek() function 是否等于未定义

function isEmpty(){
return peek() == undefined;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM