모든 자료에 O(1)으로 접근이 보장되지 않는 자료구조
✔ Stack
📌 스택(Stack)의 특징
아래 코드는 가장 기본적인 스택의 구현으로 C언어 기준이다.
#define STACK_SIZE 500
int arr[STACK_SIZE]; //스택의 최대 크기는 500
int top = 0; //스택의 현재 크기는 0
int push(int n)
{
if (top>=STACK_SIZE) return -1;
arr[top++] = n;
return 0;
}
int pop()
{
if (top<=0) return -1;
return arr[--top];
}
파이썬 기준으로 살펴보자
class stack:
def __init__(self):
self.items = []
#비어있는지 확인
def isEmpty(self):
return self.items == []
#데이터 삽입
def push(self, item):
self.items.append(item)
#top 원소 확인
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
#데이터 삭제
def pop(self):
return self.items.pop()
✔ Queue
class queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.insert(0, item)
def dequeue(self):
return self.items.pop()
def isEmpty(self):
return self.items == []
def size(self):
return len(self.items)
-> 순서대로 진행 되어야 하는 업무들
출처: https://devuna.tistory.com/22 [튜나 개발일기]