일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- windosws wbcs
- War Game
- 파이썬
- PHP
- 백준
- OSI
- 두근두근 자료구조
- level13
- web
- System
- 스택
- HTML
- 자료구조
- Java
- 암호수학
- C
- windosw 문자열
- Stack
- pwnable.kr
- 시간복잡도
- LoB
- ftz
- c언어
- 큐
- 재귀
- 미로 탐색 알고리즘
- 정렬 알고리즘
- 파일 시스템
- SWiFT
- ftz level13
Archives
- Today
- Total
나의 기록, 현진록
[Python] Data Structure Stack 자료구조 스택 본문
Programming/Algorithm & Data Structure
[Python] Data Structure Stack 자료구조 스택
guswlsdk 2021. 6. 23. 13:50반응형
스택의 예
식당 주방에 쌓여있는 접시를 예로 들 수 있다. 설거지를 마친 접시를 쌓아둠(Push)과 동시에 요리를 마친 음식을 담기 위해 쌓아둔 정리를 가져가는(pop) 것이 동시에 이루어지는 것으로 이해할 수 있다. 스택은 후입선출(LIFO: Last-In-First-Out) 형태의 자료구조이다.
다음은 스택 구현에 쓰인 요소들이다.
init() : 스택을 초기화 하는 메소드
is_empty() : 스택이 비어있는지 여부 확인
is_full() : 스택이 가득차있는지 여부 확인
size() : 현재 스택의 데이터 갯수
push(x) : 스택에 x 요소 삽입
pop() : 스택에서 top에 해당하는 요소를 삭제 후 반환
peek() : 스택에서 top에 해당하는 요소를 삭제하지 않고 반환
MAX_STACK_SIZE : 스택 사이즈를 제한하기 위한 상수
def init():
top = -1
stack.clear()
def is_empty():
if top == -1:
return True
else:
return False
def is_full():
if top == MAX_STACK_SIZE-1:
return True
else:
return False
def size():
return len(stack)
def push(x):
global top
if is_full() == True:
print("Error: stack is full")
else:
stack.append(x)
top+=1
def pop():
global top
if is_empty() == True:
print("Error: stack is empty")
else:
top-=-1
return stack.pop()
def peek():
if is_empty() == True:
print("Error: stack is empty")
else:
return stack[top]
MAX_STACK_SIZE = 5
stack=[]
top = -1
init()
push(1)
print(stack)
push(2)
print(stack)
push(3)
print(stack)
print(pop())
print(stack)
print(pop())
print(pop())
print(size())
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[python] Data Structure Circle Queue 자료구조 원형 큐 (0) | 2021.06.24 |
---|---|
[python] Data Structure Linear Queue 자료구조 선형 큐 (0) | 2021.06.23 |
[C] <BAEKJOON> 백준 1193번 : 분수찾기 (0) | 2020.11.16 |
[C] <BAEKJOON> 백준 1712번 : 손익분기점 (0) | 2020.11.16 |
[C] <암호수학> 확장 유클리드 알고리즘 (0) | 2018.04.02 |