data structure 1
TRANSCRIPT
자료구조 세미나
Stack, queue, DFS, BFS
Stack
• LIFO( Last In First Out )• 일반적으로 top 이라는 변수를 사용한다 .• 무엇이 처리되려고 했었는지 저장한다 .
987123 456
top
987123 456 487
top
487 을 stack 에 넣은 후
Stack
• pushstack[top++] = value;
• popvalue = stack[--top];
Queue
• FIFO( First In First Out )• 일반적으로 front 와 rear 라는 변수를
사용한다 .• 무엇이 앞으로 처리될 것인지 저장한다 .
987123 456
front rear
Queue
• putqueue[rear++] = value;
• getvalue = queue[front++];
DFS
• Depth First Search• 일단 진행하고 보는 것 .• 지나온 과정을 저장하면서 계속 나아감
-> stack 구조가 알맞음 .• 경로 추적에 용이 .• 재귀 함수를 이용하면 구현이 쉬움 .• Flood fill, Shortest path 와 같은
문제에서 비효율적임 .
DFS
• 이미지시작점
BFS
• Breadth First Search• 한꺼번에 진행 .• 경로의 중복을 최소화 하면서 퍼져나감 .• 최단 경로 탐색에 용이 .• DFS 보단 상대적으로 구현이 어려움 .
BFS
• 이미지시작점