반응형
Stack
선형 자료구조의 일종으로 Last In First Out (LIFO) - 나중에 들어간 원소가 먼저 나온다. 또는 First In Last Out (FILO) - 먼저 들어간 원소가 나중에 나온다. 이것은 Stack 의 가장 큰 특징이다.
파이썬의 경우 LIST를 활용하여 간단히 구현이 가능하다.
class Stack():
def __init__(self):
self.stack = []
def push(self, data):
self.stack.append(data)
def pop(self):
pop_object = None
if self.isEmpty():
print("Stack is Empty")
else:
pop_object = self.stack.pop()
return pop_object
def top(self):
top_object = None
if self.isEmpty():
print("Stack is Empty")
else:
top_object = self.stack[-1]
return top_object
def isEmpty(self):
is_empty = False
if len(self.stack) == 0:
is_empty = True
return is_empty
Queue
선형 자료구조의 일종으로 First In First Out (FIFO).
즉, 먼저 들어간 놈이 먼저 나온다. Stack 과는 반대로 먼저 들어간 놈이 맨 앞에서 대기하고 있다가 먼저 나오게 되는 구조이다.
파이썬의 경우 LIST를 활용하여 간단히 구현이 가능하다.
class Queue():
def __init__(self):
self.queue = []
def enqueue(self, data):
self.queue.append(data)
def dequeue(self):
dequeue_object = None
if self.isEmpty():
print("Queue is Empty")
else:
dequeue_object = self.queue[0]
self.queue = self.queue[1:]
return dequeue_object
def peek(self):
peek_object = None
if self.isEmpty():
print("Queue is Empty")
else:
peek_object = self.queue[0]
return peek_object
def isEmpty(self):
is_empty = False
if len(self.queue) == 0:
is_empty = True
return is_empty
반응형
'개발 > 자료구조' 카테고리의 다른 글
[자료구조] Array(배열) vs Linked List(연결리스트) ( + List) (0) | 2022.08.27 |
---|