キューを実装する
タイトルの説明:
1.配列を使用して、次のメソッドを必要とするキューを実装します
- エンキュー
- デキュー
- キュー
首
、尾
要素を表示する
- キューのサイズを表示する
2.キュー操作
- 新しいキューを作成する(q1という名前)
- 小から大へのインデックスによる配列ls_1のエンキュー
- 出力キュー内の要素の数
- チームの最初の要素を取得して変数q1_gettopに保存し、スタック内の要素の数を確認します
- スタックの一番上の要素をポップし、変数s1_poptopに保存して、スタック内の要素の数を確認します
プロンプト
1.キュー
はじめに
- 共通のデータ構造
- FIFO先入れ先出し:最初に挿入されたエレメントが最初に出てくる
注
- 配列を使用してキューを実装します。デキュー操作の後、配列スペースの前半は使用されません
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