Zer*_*KEz 12 python python-3.x
所以我得到了这个问题.考虑具有标准操作集的Stack和Queue类.使用Stack和Queue类,在调用mysteryFunction之前调用mysteryFunction之前包含哪些项目?
这是代码:
def mysteryFunction(s, q):
q.enqueue('csc148')
q.enqueue(True)
q.enqueue(q.front())
q.enqueue('abstract data type')
for i in range(q.size()):
s.push(q.dequeue())
while not s.is_empty():
q.enqueue(s.pop())
if __name__ == '__main__':
s=Stack()
q=Queue()
#About to call mysteryFunction
#What are contents of s and q at this point?
mysteryFunction(s, q)
#mysteryFunction has been called.
#What are contents of s and q at this point?
Run Code Online (Sandbox Code Playgroud)
我无法理解面向对象编程,因为我是这个主题的新手.是否有任何链接可以分解堆栈和队列以及它们的作用?
Ray*_*ger 19
通常,堆栈是LIFO,队列是FIFO.
在Python中,您可以使用集合模块来体验堆栈和队列:
>>> from collections import deque
>>> stack = deque()
>>> stack.append(10)
>>> stack.append(20)
>>> stack.append(30)
>>> stack
deque([10, 20, 30])
>>> stack.pop() # LIFO
30
>>> stack.pop()
20
>>>
>>> queue = deque()
>>> queue.append(10)
>>> queue.append(20)
>>> queue.append(30)
>>> queue
deque([10, 20, 30])
>>> queue.popleft() # FIFO
10
>>> queue.popleft()
20
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参见以下链接:
可以通过以下方式直观地看到这两个数据结构:
堆:
描述:
此数据结构有所不同。但是,简单来说-正如您在所提供的图像中所观察到的那样,当您将数据添加到此数据结构中时,您会将其置于已存在的数据之上,而当您将其删除时,也将从顶部开始。您可以将其视为一堆书,从上到下一直一一阅读。
队列
描述:
这个特定的数据结构也有一些变化,但是用简单的术语来说-如您在提供的图像中看到的那样,当您将新元素添加到此数据结构中时,新元素会放在开头,而当您从列表中删除最后一个元素时,正在被删除。您可以将它想象成在一家商店排队等候的队列,那里的很多人都在后面等着轮到您到柜台付款。
归档时间: |
|
查看次数: |
11858 次 |
最近记录: |