2020-12-28


pythonのキューと両端のキュー
12.28これまで、キューと両端のシーケンスを裏切られることを堅持するのは順序表で操作されたことがありません.比較的簡単で、いくつかの初心者のデータ構造に適しています.1.キュー
Queue()空のキューenqueue(item)を作成キューにitem要素dequeue()を追加キューヘッダから要素isを削除Empty()は、1つのキューが空size()であるかどうかを判断します.
class Queue(object):
    """  """
    def __init__(self):
        self.list=[]

    def enqueue(self,item):
        """        item  """
        return self.list.append(item)

    def dequeue(self):
        """           """
        return self.list.pop(0)

    def is_empty(self):
        """        """
        return self.list==[]

    def size(self):
        """      """
        return len(self.list)

if __name__=="__main__":
    ls=Queue()
    ls.enqueue(20)
    ls.enqueue(15)
    ls.enqueue(62)
    ls.enqueue(78)
    print(ls.dequeue())
    print(ls.dequeue())
    print(ls.dequeue())
    print(ls.is_empty())

2.両端キュー
Deque()空の両端キューadd_を作成するfront(item)チームヘッダからitem要素addを追加rear(item)キューの最後からitem要素remove_を追加front()キューからitem要素removeを削除rear()キューの最後からitem要素isを削除Empty()は、両端キューが空size()戻りキューのサイズであるか否かを判断する
class Deque(object):
    """    """
    def __init__(self):
        self.list=[]

    def add_front(self,item):
        return self.list.insert(0,item)

    def add_rear(self,item):
        return self.list.append(item)

    def remove_front(self):
        return self.list.pop(0)

    def remove_rear(self):
        return self.list.pop()

    def is_empty(self):
        return self.list==[]

    def size(self):
        return len(self.list)

if __name__=="__main__":
    ls=Deque()
    ls.add_front(20)
    ls.add_front(25)
    ls.add_rear(41)
    ls.add_rear(36)# 25 20 41 36
    print(ls.remove_front())
    print(ls.remove_rear())

もうすぐ2021年、一绪に顽张りましょう!!!