반응형

개발/자료구조 2

[자료구조] Stack(스택), Queue(큐)

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_objec..

개발/자료구조 2022.08.27

[자료구조] Array(배열) vs Linked List(연결리스트) ( + List)

Array 가장 기본적인 자료구조인 Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치한다. 따라서 인덱스(index)로 해당 원소(element)에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근할 수 있다. 즉 random access 가 가능하다는 장점이 있는 것이다. 하지만 삭제 또는 삽입의 과정에서는 해당 원소에 접근하여 작업을 완료한 뒤(O(1)), 또 한 가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다. 만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 깨지게 된다. 즉 빈 공간이 생기는 것이다. 따라서 삭제한 원소보다 큰 인덱스를 갖는 원소들을 shift해줘야 하는 ..

개발/자료구조 2022.08.27
반응형