스택 : 프로그래밍에서 목록 혹은 리스트에서의 접근이 한쪽에서만 가능한 구조
LIFO(Last in, First-Out)
이 기본원리
python
# 스택
class Stack(list):
push=list.append
def peek(self):
return self[-1] #len(self)-1 이용해도 됨
#pop은 내장함수로 존재하기 때문에 사용안함
python
s=Stack()
s.push(1)
s.push(5)
s.push(10) #데이터가 쌓여있음
print("stack :",s) # [1,5,10]
print("pop:",s.pop()) #10을 출력하고 없어짐
print("stack :",s) #[1,5]
print("peek :",s.peek())
#5 , pop과 다르게 없어지지않음.
스택의 활용
: 이전페이지, 다음페이지 / 깊이우선탐색
큐: 프로그래밍에서 목록, 리스트 양쪽에서 접근이 가능한 구조
FIFO(First-In, First-Out)
가 기본원리
python
class Queue(list):
put=list.append
def peek(self):
return self[0]
def get(self):
return self.pop(0) #제일처음에 있는 인덱스 추출가능
python
q=Queue()
q.put(1)
q.put(5)
q.put(10)
print("queue:",a) #[1,5,10]
print("get : ,q.get()) # 1 이 pop되면서 없어짐
print("queue:",a) #[5,10]
print("peek :",q.peek()) #5 확인만 하는것
print("queue:",a) #[5,10]
from queue import Queue
: 구현된 class import
q=Queue
로 담고난 뒤에 사용
큐의 활용
: 프린터 인쇄 대기열, 너비우선탐색
q=[]
q.append(1)
q.append(5)
q.append(10)
print("queue :",q) #queue : [1,5,10]
print("pop :",q.pop(0)) #pop : 1
print("queue :",q) #queue : [5,10]
print("peek : ",q[0] #peek : 5
print("queue :",q) #queue : [5,10]