스택 (Stack)전공 이론 공부/알고리즘&자료구조2020. 2. 29. 18:01
Table of Contents
리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조
특징
- LIFO(Last In First Out, 후입선출) : 가장 나중에 삽입된 자료가 가장 먼저 삭제된다.
- 스택의 모든 기억공간이 꽉 채워져 있는 상태에서 데이터가 삽입되면 오버플로우가 발생하며,
더 이상 삭제할 데이터가 없는 상태에서 데이터를 삭제하면 언더플로우가 발생한다.
- Top: 스택으로 할당된 기억 공간에 가장 마지막으로 삽입된 자료가 기억된 위치를 가리키는 요소
- Bottom: 스택의 가장 밑바닥
스택의 연산
- push(item): 스택의 맨 윗부분에 원소를 추가한다.
- pop(): 스택의 맨 윗부분의 원소를 제거한다.
- peek(): 스택의 맨 윗부분의 원소를 반환한다.
- isEmpty(): 스택이 비어있으면 true를 반환한다.
스택 클래스 구현 (파이썬)
class Stack:
def __init__(self):
self.len = 0
self.list = []
def push(self, num):
self.list.append(num)
self.len += 1
def pop(self):
if self.size() == 0:
return -1
pop_result = self.list[self.len - 1]
del self.list[self.len - 1]
self.len -= 1
return pop_result
def peek(self):
return self.list[-1] if self.size() != 0 else -1
def isEmpty(self):
return 1 if self.len == 0 else 0
관련문제▼
https://somewheretogo.tistory.com/99
반응형
'전공 이론 공부 > 알고리즘&자료구조' 카테고리의 다른 글
그리디 알고리즘 (Greedy Algorithm) (0) | 2020.02.29 |
---|---|
큐 (Queue) (0) | 2020.02.29 |
퀵 정렬 (Quick Sort) - 파이썬 (0) | 2020.02.29 |
버블정렬(Bubble Sort) - java, python (0) | 2020.02.11 |
선택정렬(Selection Sort)- java, python (0) | 2020.01.08 |
@쿠몬e :: ˚˛˚ * December☃ 。* 。˛˚
전공 공부 기록 📘
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!