Pythonを使用して循環キュー!


キューはスタックに似ていますが、F . I . F . Oメソッドに従います.
キューは、通常のPythonリストを使用しても、リンクリストを開発することができます.ここでは、時間の複雑さと空間の複雑さが通常のPythonリストを持つキューに比べて良いので、リンクリスト付きキューが望ましい.
Pythonのリストを持つキューでは、enqueueとdequeueは入力の増加とともに最悪の場合に終わります.したがって、より良いバージョンの循環キューです.
循環キューは、トラフィックのシステムでは、メモリ管理、CPUのスケジューリングで使用されるが、ここでのデータの増加の時間複雑さが最悪の空間が複雑に固定サイズで削減することができます.したがって、時間の複雑さが好ましいなら、リンクリストを使用してキューを実装することは常に良いことです.
Pythonでは循環キューの実装を調べることができます.
ここに行く.
#we need Queue class to initialize fixed empty list with start and top
class CircularQ:
    def __init__(self,maxSize):
        self.data = maxSize *[None]
        self.maxSize = maxSize
        self.start = -1
        self.top = -1
    def __str__(self):
        return str(self.data)

    def isEmpty(self,value):
        if self.top and self.star == -1:
            return True
        else:
            return False

    def isFull(self):
        if self.top+1 == self.maxSize and self.start == 0:
            return True
        elif self.start+1 == self.top:
            return True
        else:
            return False

    def insert(self,value):
        self.top+=1
        self.data[self.top] = value
        self.start=0

    def delete(self):
        first = self.data[self.start]
        start = self.start

        if self.start == self.top:
            self.start =-1
            self.top=-1

        elif self.start+1 == self.maxSize:
            self.start = 0

        else:
            self.start+=1
        self.data[start] = None
        return first



circular = CircularQ(5)
circular.insert(1)
circular.insert(2)
circular.insert(3)
circular.insert(4)
circular.insert(5)
circular.delete()
circular.delete()
print(circular)
ありがとう.
誰もが健康と良い未来を……!
あなたは私をサポートすることができます..👇