차근차근 꾸준히

한 눈에 알기 쉽게 정리하자

프로그래밍/자료구조 2

[자료구조] DFS, BFS

DFS와 BFS는 그래프(그 중에서 특히 트리)를 탐색하는 방법에서 나온 것이다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종을 말한다.그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말한다.깊이 우선 탐색 (DFS : Depth-First Search)한 루트로 최대한 깊이 내려가 확인한 뒤, 더 이상 깊이 갈 곳이 없다면 다시 돌아가 다른 루트로 탐색한다.  DFS는 스택(Stack)이나 재귀함수로 구현한다. 구체적인 동작 과정은 다음과 같다.탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다.스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리를 한다. 그리고..

[자료구조] 스택과 큐(C++)

스택(Stack)스택은 LIFO(Last in First out)으로, 가장 마지막으로 추가된 데이터부터 출력되는 자료구조이다.  스택의 연산 직접 설계하기push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다.만약 스택에 들어있는 정수가 없는 경우에는 -1을 리턴한다.size: 스택에 들어있는 정수의 개수를 리턴한다.empty: 스택이 비어있으면 1, 아니면 0을 리턴한다.top: 스택의 가장 위에 있는 정수를 리턴한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 리턴한다.스택 직접 구현#includeusing namespace std;class Stack {public: Stack() { length = 0; } void push(in..