CS 공부 - 자료구조 2

[Data Structure] Tree

Tree - Node와 Edge로 이루어진 자료구조 특징 - 값을 가진(Node)와 노드를 연결하는 간선(Edge)로 이루어져 있음. - 루트 노드 : 부모가 없는 노드(그림에서 1) - 모든 노드는 0개 이상의 자식노드를 가지며, 부모-자식 관계라고 칭함 - 사이클이 존재할 수 없음(사이클이 생기면 트리가 아니라 그래프) - 루트에서 노드 한개로 가는 경로는 유일함 - 노드의 개수가 N개일 때, 간선은 N-1개 트리 순회 방식 1. 전위 순회(pre-order) : root → 왼쪽 자식 → 오른쪽 자식 2. 중위 순회(in-order) : 왼쪽 자식 → root → 오른쪽 자식 3. 후위 순회(post-order) : 왼쪽자식 → 오른쪽 자식 → root 트리 장점 및 활용 예시 [장점] - 계층적 ..

[Data Structure] Stack and Queue

스택(Stack) 특징 입력과 출력이 한 곳(방향)으로 제한적임 LIFO(Last In First Out, 후입선출) : 가장 나중에 들어온 것이 가장 먼저 나옴 예시 : 함수의 콜스택, 연산자 후위표기, 문자열 역순, DFS 장점 및 활용 재귀함수를 필요로하는 소스코드에 재귀함수를 사용하지 않고 구현 가능 웹 브라우저의 방문기록에서 스택의 트깅을 활용해 '뒤로가기'를 구현할 수 있음 프로그램의 실행취소(Undo)에 활용됨 큐(Queue) 입력과 출력을 한 쪽 끝(front,rear)로 제한 큐의 가장 첫 원소를 front , 가장 끝 원소를 rear 큐는 들어올 때 rear로 들어오지만 나올때는 front부터 빠지는 특성 FIFO(First In First Out, 선입선출) : 가장 먼저 들어온 것이..