实现一个队列
题目描述:
1. 使用数组实现一个队列,要求具有以下方法
2. 队列操作
- 新建一个队列(命名为q1)
- 将数组ls_1 按索引从小到大进行入队操作
- 输出队列中元素个数
- 获取队首元素,保存在变量q1_gettop中,观察栈中元素个数
- 弹出栈顶元素,保存在变量s1_poptop中,观察栈中元素个数
提示
1.队列(queue)
简介
- 一种常用数据结构
- 先进先出(FIFO-first in first out):最先插入的元素最先出来
注
- 使用数组实现队列,当进行出队操作后,数组前半部分空间空间并未被利用
2. 代码补全
class MyQueue:
def __init__(self):
self.arr = []
self.front = 0
self.rear = 0
def is_empty(self):
return self.rear == self.front
def size(self):
return self.rear - self.front
def get_front(self):
if self.is_empty():
return None
else:
return self.arr[self.front]
def get_rear(self):
if self.is_empty():
return None
else:
return self.arr[self.rear-1]
def de_queue(self):
if self.rear > self.front:
self.front += 1
else:
print('队列已空')
def en_queue(self, item):
self.arr.append(item)
self.rear += 1
队列操作
新建一个队列(命名为q1)
q1 = MyQueue()
q1
<__main__.MyQueue at 0x7d42408>
将数组ls_1 按索引从小到大进行入队操作
ls_1 = list(range(1,10,2))
ls_1
[1, 3, 5, 7, 9]
for i in ls_1:
q1.en_queue(i)
输出队列中元素个数
q1.size()
5
获取队首元素,保存在变量q1_getfront中,打印队列中元素个数
q1_getfront = q1.get_front()
print('队首元素为:{}'.format(q1_getfront))
print('队列长度为:{}'.format(q1.size()))
队首元素为:1
队列长度为:5
获取队尾元素,保存在变量q1_getrear中,打印队列元素个数
q1_getrear = q1.get_rear()
print('队尾元素为:{}'.format(q1_getrear))
print('队列长度为:{}'.format(q1.size()))
队尾元素为:9
队列长度为:5
执行出队操作,打印出队前后队首索引、队尾索引、队列元素个数
print('出队前队首索引为:{},队尾索引为:{}'.format(q1.front,q1.rear))
print('*******************')
q1.de_queue()
print('出队后队首索引为:{},队尾索引为:{}'.format(q1.front,q1.rear))
print('出队之后队列元素个数为:{}'.format(q1.size()))
出队前队首索引为:0,队尾索引为:5
*******************
出队后队首索引为:1,队尾索引为:5
出队之后队列元素个数为:4