1.スタックとキュー



[ソース:https://gohighbrow.com/stacks-and-queues/]

▼▼スタック

  • LIFO(Last-In, First-Out)
  • 冊の本を積み重ねたように、順番に積み重ねられた資料構造
  • .
    データは
  • 時間の順に累積し、最後に挿入するデータは
  • を最初に削除する.
  • は、1つの場所で挿入および削除(1つの場所からのみアクセス可能)
  • を実行する.
  • push:挿入演算/pop:削除演算/peek:確認データのみ
  • にインポートしない
  • Pythonはlistをスタックとして実現した

    📚 Pythonスタックを直接実現

    class Stack(list):
    
    	push = list.append              #push와 완전동일
    	def peek(self):                 #스택의 가장 마지막 데이터를 보여주는 것
    	   	return self[-1]             #self[len(self)-1]
    popはlistの内蔵関数として既に存在する.
    ビューの実行
    s = Stack()
    s.push(1)
    s.push(5)
    s.push(10)
    print("my stack is : ", s)             my stack is : [1, 5, 10]
    
    
    print("popped value is: " , s.pop())   popped value is : 10
    print("my stack is : ", s)             my stack is : [1, 5]
    print("peeked value is :" , s.peek())  peeked value is : 5
    print("my stack is : ", s)             my stack is : [1, 5]

    📚 PYTHON Listをスタックとして使用

    s = []
    s.append(1)
    s.append(5)
    s.append(10)
    print("my stack is: ", s)               my stack is: [1, 5, 10]
    print("popped value is:" , s.pop())     popped value is: 10
    print("my stack is: ", s)               my stack is: [1, 5]
    print("peeked value is: ", s[-1])       peeked value is: 5
    print("my stack is: ", s)               my stack is: [1, 5]

    📚 スタック使用率


  • 前ページ次ページ

  • 深度優先ナビゲーション(DFS)
  • 待機事項リスト

  • 第一入力(FIFO)前後
  • 遊園地に並んで待つように、先に入った資料が先に出ている資料構造
  • 削除操作および挿入のみ操作(コンベア)
  • put, get , peek
  • 🎢 PYTHON Queを直接実施

    class Queue(list):
    		put=list.append
            def peek(self):
            	return self[0]
            def get(self):
            	return self.pop(0)

    🎢 PYTHON Queによる直接実施

    q = Queue()
    q.put(1)
    q.put(5)
    q.put(10)
    print("my queue is: ", q)              my queue is: [1, 5, 10]
    print("removed value is: ", q.get())   removed value is: 1
    print("my queue is: ", q)              my queue is: [5, 10]
    print("peeked value is: ", q.peek())   peeked value is: 5
    print("my queue is: ", q)              my queue is: [5, 10]

    🎢 PYTHON実装クラスimport

    from queue import Queue // 큐를 직접 구현하는 번거로움 없이 큐를 선언
    q = Queue()
    q.put(1)
    q.put(5)
    q.put(10)
    print("my queue is: ", q)              my queue is: [1, 5, 10]
    print("removed value is: ", q.get())   removed value is: 1
    print("my queue is: ", q)              my queue is: [5, 10]
    print("peeked value is: ", q.peek())   peeked value is: 5
    print("my queue is: ", q)              my queue is: [5, 10]

    🎢 キューとしてPython Listを使用

    q = []
    q.append(1)
    q.append(5)
    q.append(10)
    print("my queue is: ", q)              my queue is: [1, 5, 10]
    print("removed value is: ", q.pop(0))  removed value is: 1
    print("my queue is: ", q)              my queue is: [5, 10]
    print("peeked value is: ", q[0])       peeked value is: 5
    print("my queue is: ", q)              my queue is: [5, 10]

    🎢 キューの使用

  • プリンタ印刷キュー
  • 幅優先ナビゲーション(BFS)