用数组实现双端队列
时间: 2023-11-13 11:05:01 浏览: 130
JS中队列和双端队列实现及应用详解
双端队列(Double-ended queue)是一种具有队列和栈的性质的数据结构,又称为双向队列。它可以在队列的两端进行插入和删除操作。下面是用数组实现双端队列的示例代码:
```python
class Deque:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def add_front(self, item):
self.items.append(item)
def add_rear(self, item):
self.items.insert(0, item)
def remove_front(self):
return self.items.pop()
def remove_rear(self):
return self.items.pop(0)
def size(self):
return len(self.items)
```
这里我们使用 Python 的列表来实现队列。`add_front` 方法将元素添加到列表末尾,`add_rear` 方法将元素插入到列表头部。`remove_front` 和 `remove_rear` 方法分别从列表的末尾和头部删除元素。`is_empty` 和 `size` 方法用于检查队列是否为空以及返回队列元素个数。
下面是一个简单的测试代码:
```python
d = Deque()
print(d.is_empty())
d.add_rear(4)
d.add_rear('dog')
d.add_front('cat')
d.add_front(True)
print(d.size())
print(d.is_empty())
d.add_rear(8.4)
print(d.remove_rear())
print(d.remove_front())
```
输出结果为:
```
True
4
False
8.4
True
```
阅读全文