data structure 1

9
자자자자 자자자 Stack, queue, DFS, BFS

Upload: yonsei

Post on 22-May-2015

472 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Data Structure 1

자료구조 세미나

Stack, queue, DFS, BFS

Page 2: Data Structure 1

Stack

• LIFO( Last In First Out )• 일반적으로 top 이라는 변수를 사용한다 .• 무엇이 처리되려고 했었는지 저장한다 .

987123 456

top

987123 456 487

top

487 을 stack 에 넣은 후

Page 3: Data Structure 1

Stack

• pushstack[top++] = value;

• popvalue = stack[--top];

Page 4: Data Structure 1

Queue

• FIFO( First In First Out )• 일반적으로 front 와 rear 라는 변수를

사용한다 .• 무엇이 앞으로 처리될 것인지 저장한다 .

987123 456

front rear

Page 5: Data Structure 1

Queue

• putqueue[rear++] = value;

• getvalue = queue[front++];

Page 6: Data Structure 1

DFS

• Depth First Search• 일단 진행하고 보는 것 .• 지나온 과정을 저장하면서 계속 나아감

-> stack 구조가 알맞음 .• 경로 추적에 용이 .• 재귀 함수를 이용하면 구현이 쉬움 .• Flood fill, Shortest path 와 같은

문제에서 비효율적임 .

Page 7: Data Structure 1

DFS

• 이미지시작점

Page 8: Data Structure 1

BFS

• Breadth First Search• 한꺼번에 진행 .• 경로의 중복을 최소화 하면서 퍼져나감 .• 최단 경로 탐색에 용이 .• DFS 보단 상대적으로 구현이 어려움 .

Page 9: Data Structure 1

BFS

• 이미지시작점