10強データ構造キュー



キューはFIFOルールのシーケンスデータ構造です.
Enqueueはスタックのappendに対応する挿入で、一番外側です.
dequeueはスタックpopに相当する削除を使用して最も奥の内容を除去する.
stackはポニーテール、queueは動物なら便利です.
stackは一番上に注意するだけで、queueは一番奥と外の2つのインデックスを知る必要があります.
front-index, rear
class Queue:
	def __init__(self): 생성자
    	self.items = [] # 빈 리스트
        self.front-index = 0
    def enqueue(self, value):
    	self.items.append(val)
    def dequeue(self):
    	if self.front-index == len(self.items):
        	print("Q is empty")
            return None
        else:
        	X = self.items[front-index]
            self.front-index += 1
            return X
dequeueではels:items[front-index]の値を実際に削除するのではなく、front-indexの値を削除したように動作させる.
front-indexがlenに等しいまで増加すると、すべて削除されるので、Q is emptyが出力される.

Josephus問題があり,n人がいるとK人ごとに除外される.
これもqueueで解くと、1、2はdequeue、enqueueで最後に貼り直し、3はdequeueだけで値を落とす.
後ろの数字もこのように繰り返し、3番目の数字を1つ増やすたびに、新しい数字を追加しないと正常に動作します.