알고리즘_스택과 큐

이경영·2022년 4월 14일
0

알고리즘

목록 보기
1/5

스택과 큐

스택

스택 : 프로그래밍에서 목록 혹은 리스트에서의 접근이 한쪽에서만 가능한 구조
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로 담고난 뒤에 사용
큐의 활용 : 프린터 인쇄 대기열, 너비우선탐색

list를 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]
profile
꾸준히

0개의 댓글