Python

[Python] Stack & Queue

SangRok Jung 2022. 10. 8. 13:49
반응형

Stack


  • 쌓다 라는 의미.
  • 목록 혹은 리스트에서 접근이 한 쪽에서만 가능한 구조.
  • LIFO 원리.

 

 

 

▶ stack 함수

  • push : 데이터 최상단에 데이터 추가.
  • peak : 최상단의 데이터를 확인.
  • pop : 최상단의 데이터를 추출.

 

 

 

 

▶ 직접 구현

▷ Stack 클래스 생성

class Stack(list) : 
    # push 정의
    push = list.append
    
    # peek 정의
    def peek(self):
            return self[-1]
    
    #pop은 list의 내장함수로 이미 존재

 

 

 

 

 

 

▷ Stack에 데이터 추가

s = Stack()
s.push(1)
s.push(5)
s.push(10)
print('my stack is : ', s)

# my stack is :  [1, 5, 10]

 

 

 

 

▷ Stack에 데이터 추출

print("popped value is : ", s.pop())

# popped value is :  10

 

 

 

 

 

▷ stack에 가장 최상단 데이터 확인.

print('peeked value is : ', s.peek())
# peeked value is :  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('peeked value is : ', s[-1])
# peeked value is :  5

 

 

 

 

 

 

▶ 스택의 활용

 

▶ 이전페이지 & 다음페이지

 

 

 

 

 

 

 

 

 

 

 

 

Queue


  • 일이 처리되기를 기다리는 리스트 라는 의미
  • 리스트에서 접근이 양쪽에서 가능한 구조
  • FIFO 구조

 

 

 

▶ Queue 함수

  • put : 최상단에 데이터를 추가.
  • peak : 최하단 데이터를 확인.
  • get : 최하단의 데이터를 추출.

 

 

 

 

 

 

▶ 구조

 

 

 

 

 

 

 

▶ 직접구현

▷ Queue 클래스 생성.

#Queue
class Queue(list) : 
    # 데이터 추가
    put = list.append
    
    # 데이터 확인
    def peek(self) :
        return self[0]
    
    # 데이터 추출
    def get(self) :
        return self.pop(0)

 

 

 

 

 

▷ Queue에 데이터 추가.

q = Queue()
q.put(1)
q.put(5)
q.put(10)
print("my queue is: ",q)

# my queue is:  [1, 5, 10]

 

 

 

▷ Queue에 데이터 추출.

print("removed value is : ", q.get())

# removed value is :  1

 

 

 

▷ Queue에 최하단 데이터 확인.

print("peeked value is :", q.peek())
# peeked value is : 5

 

 

 

 

 

 

 

▶ Python에 구현된 class import

from queue import Queue

 

 

 

 

▶ Python의 List를 큐로 활용

# 리스트 생성
q = []

# 데이터 추가
q.append(1)
q.append(10)
q.append(100)

# 데이터 추출
q.pop(0)

# 데이터 확인
q[0]

 

 

 

 

 

 

 

▶ Queue의 활용

반응형

'Python' 카테고리의 다른 글

[Python] 완전탐색 & 이분탐색  (0) 2022.10.10
[Python] Coding Test (크레인 인형뽑기 게임)  (1) 2022.10.08
[Python] Pivot Table  (0) 2022.10.06
[Python] 그룹연산  (0) 2022.10.06
[Python] 데이터 프레임 연결  (0) 2022.10.06