[ラーニング]資料構造-スタックとキュー

5471 ワード

スタック


スタック構造:Last In First Out(LIFO)、先入後出=後入
  • 箱の様子を考えてみると、簡単か、ポテトチップスのバケツに入ったポテトチップスです.
  • # 코드로 stack 표현
    stack = []
    
    stack.append(5)
    stack.append(2)
    stack.append(3)
    stack.append(7)
    stack.pop()
    stack.append(1)
    stack.append(4)
    stack.pop()
    
    print(stack) # 먼저 들어온 순서대로 출력 : >>>[5231]
    print(stack[::-1]) # 나중에 들어온 순서대로 출력 : >>>[1325]

    キュー


    ヒント:First In First Out(FIFO)、入出力
  • データは右から左に移動し、左から開始します.
  • 銀行号、トンネル(入口も出口もトンネルあり)、行列
  • キューを使用する場合は、リストを使用できますが、時間の複雑さが高いのでDequeライブラリを使用します.
  • # 코드로 queue 표현
    from collections import deque
    
    queue = deque()
    
    queue.append(5)
    queue.append(2)
    queue.append(3)
    queue.append(7)
    queue.popleft()
    queue.append(1)
    queue.append(4)
    queue.popleft()
    
    print(queue) # 먼저 들어온 순서대로 출력 : >>>deque([3, 7, 1, 4])
    queue.reverse()
    print(queue) # 나중에 들어온 순서대로 출력 : >>>deque([4, 1, 7, 3])

    Dequeの概念


    通常、キューは先入先出(FIFO)方式で動作する.
    双方向Qがあります.それはDequeです.
    すなわち、前後の2つの方向からエンティティを追加または削除することができる.
    Dequeに存在するメソッドは、次のようになります.
    deque.append(item): item을 데크의 오른쪽 끝에 삽입한다.
    deque.appendleft(item): item을 데크의 왼쪽 끝에 삽입한다.
    deque.pop(): 데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
    deque.popleft(): 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
    deque.extend(array): 주어진 배열(array)을 순환하면서 데크의 오른쪽에 추가한다.
    deque.extendleft(array): 주어진 배열(array)을 순환하면서 데크의 왼쪽에 추가한다.
    deque.remove(item): item을 데크에서 찾아 삭제한다.
    deque.rotate(num): 데크를 num만큼 회전한다(양수면 오른쪽, 음수면 왼쪽).