不使用堆栈的反向队列

时间:2019-03-11 04:30:21

标签: python python-3.x queue reverse

Example$Flip = NA

for (i in seq_along(Example$z)){ #Change1
   if(sign(Example$z[i]) == -1){ #Change2
     Example$z[i] <- (Example$z[i]*-1)
     Example$y[i] <- (Example$y[i]*-1)
     Example$Flip[i] <- "True"
    }
   else{
     Example$Flip[i] <- "False"
   }
 }

Example
#   x  y z  Flip
#1  4 -4 2 False
#2  3 -3 1 False
#3  2 -2 0 False
#4  1  1 1  True
#5  0  0 2  True
#6 -1 -1 3  True
#7 -2 -2 4  True
#8 -3 -3 5  True

函数反向队列返回“ Nonetype”对象,该对象没有属性值。我不确定如何进行此操作。

当我测试q.front()时。它返回正确的答案。我试图通过指出self.head == None来跳过该错误。

在这种情况下我该怎么办?

请帮助。非常感谢!

1 个答案:

答案 0 :(得分:0)

您的函数reversequeue(q)没有return语句

def reversequeue(q):
    if q.isEmpty() == False:        
        data = q.front()
        q.dequeue()
        reversequeue(q)
        q.enqueue(data)

因此它默认返回None。只需为基本情况和递归情况添加收益,然后更新q

def reversequeue(q):
    if q.isEmpty() == False:        
        data = q.front()
        q.dequeue()
        q = reversequeue(q)
        q.enqueue(data)
        return q
    return Queue()