programming language/Algorithm 82

Stack & Queue

Stack 선형 자료구조의 일종으로 Last In First Out (LIFO). 즉, 나중에 들어간 원소가 먼저 나온다. 이것은 Stack 의 가장 큰 특징이다. 차곡차곡 쌓이는 구조로 먼저 Stack 에 들어가게 된 원소는 맨 바닥에 깔리게 된다. 그렇기 때문에 늦게 들어간 녀석들은 그 위에 쌓이게 되고 호출 시 가장 위에 있는 녀석이 호출되는 구조이다. class stack: def __init__(self): self.items=[] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def isEmpty(self): return not self.items stk = stack() # stack 객..

Linked List

Array 개념 장점 단점 time complexity Linked List 개념 장점 단점 time complexity 코드 짜보기 단일 연결 리스트 Array 개념 가장 기본적인 자료구조. 논리적 저장 순서, 물리적 저장 순서가 일치한다. 장점 index로 해당 element에 접근할 수 있다. 찾고자하는 원소의 인덱스 값을 알고 있으면 N-1에 해당원소로 접근할 수 있다. 즉, Random access가 가능하다는 장점이 있는 것이다. 단점 삭제 또는 삽입의 과정에서 해당 원소에 접근하여 작업을 완료한 뒤, 또 한가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다. 만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 깨지게 된다. 즉 빈 공간이 생기는 것이다...