用Python实现一个可以从前、中、后推入或弹出的队列的程序

假设,我们被要求实现一个队列,该队列可以在前、中和后推送和弹出值。

我们必须为所有三种情况实现一对函数来推送和弹出。我们必须实现另一个函数来显示给定时间的完整队列。

所以,如果输入是这样的

push_from_back(10)

push_from_back(20)

push_from_front(30)

push_from_middle(40)

push_from_front(50)

show_queue()

pop_from_back()

show_queue()

pop_from_front()

show_queue()

pop_from_middle()

show_queue(),

那么输出将是 [50, 30, 40, 10, 20

[50, 30, 40, 10]

[30, 40, 10]

[30, 10]

示例

让我们看下面的实现来更好地理解

class Solution():

   def __init__(self):

     self.array= []

   def push_from_front(self, value):

      self.array.insert(0, value)

   def push_from_middle(self, value):

      self.array.insert(len(self.array) // 2、值)

   def push_from_back(self, value):

      self.array.append(value)

   def pop_from_front(self):

      return (self.array or [-1]).pop(0)

   def pop_from_middle(self):

      return (self.array or [-1]).pop((len(self.array) - 1) // 2)

   def pop_from_back(self):

      return (self.array or [-1]).pop()

   def show_queue(self):

      return self.array

ob = Solution()

ob.push_from_back(10)

ob.push_from_back(20)

ob.push_from_front(30)

ob.push_from_middle(40)

ob.push_from_front(50)

print(ob.show_queue())

ob.pop_from_back()

print(ob.show_queue())

ob.pop_from_front()

print(ob.show_queue())

ob.pop_from_middle()

print(ob.show_queue())

输入

ob = Solution()

ob.push_from_back(10)

ob.push_from_back(20)

ob.push_from_front(30)

ob.push_from_middle(40)

ob.push_from_front(50)

print(ob.show_queue())

ob.pop_from_back()

print(ob.show_queue())

ob.pop_from_front()

print(ob.show_queue())

ob.pop_from_middle()

print(ob.show_queue())

输出结果
[50, 30, 40, 10, 20]

[50, 30, 40, 10]

[30, 40, 10]

[30, 10]

以上是 用Python实现一个可以从前、中、后推入或弹出的队列的程序 的全部内容, 来源链接: utcz.com/z/341326.html

回到顶部