Python

[Python] 파이썬 모듈 사용안하고 스택(stack) 구현하기 예제

Let it out 2024. 5. 8. 07:34

파이썬에서 리스트를 사용하면 스택을 아주 쉽게 구현 할 수 있다.

 

스택(stack)

스택은 자료구조 중 하나로 후입선출(LIFO : Last in First out)을 가진다.

즉 먼저 들어온 데이터는 가장 마지막에 나가는 구조다.

 

 

우선 리스트에서 사용하는 append, pop 함수를 알아보자.

 

append() 함수

append 함수는 리스트에 순서대로 새로운 요소를 더해준다.

s = list() # 리스트 생성

s.append("1") # 리스트에 1추가
s.append("2") # 리스트에 1추가
s.append("3") # 리스트에 1추가

print(s) #리스트 출력

 

결과

['1', '2', '3']

 

 

pop() 함수

pop 함수는 리스트에 마지막 요소를 삭제해준다.

예제처럼 [1,2,3] 리스트에서 pop을 2번 해주면 3, 2가 삭제된다.

s = list() # 리스트 생성

s.append("1") # 리스트에 1추가
s.append("2") # 리스트에 1추가
s.append("3") # 리스트에 1추가

print("첫번째 삭제 : ", s.pop()) # pop으로 요소 삭제해 주기
print("두번째 삭제 : ", s.pop()) # pop으로 요소 삭제해 주기

print("리스트 남은 요소 : ", s) #리스트 출력

 

결과

첫번째 삭제 :  3
두번째 삭제 :  2
리스트 남은 요소 :  ['1']

 

 

 


 

리스트로 스택 구현하기 예제

append() 함수로 요소를 삽입해 주고

pop() 함수로 삭제해주는 예제다.

s = list() # 리스트 생성

str = input("문자열 입력:")# 문자열 입력 받기
for char in str : #입력 받은 str 문자열 만큼 for문 반복
    s.append(char) # char 문자를 스택에 삽입

print("문자열 출력: ", end='') #end= '' 사용해서 줄바꿈 없이 출력
while len(s) > 0: # 리스트가 공백이 될 때까지 반복
    print(s.pop(), end='') # 삽입 역순으로 출력

 

결과

문자열 입력: 1234
문자열 출력: 4321

 

반응형