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

Data Structure 1

  • 1.
  • 2.
    Stack LIFO( LastIn First Out ) 일반적으로 top 이라는 변수를 사용한다. 무엇이 처리되려고 했었는지 저장한다. 987 123 456 top 987 123 456 487 top 487 을 stack 에 넣은 후
  • 3.
    Stack push stack[top++]= value; pop value = stack[--top];
  • 4.
    Queue FIFO( FirstIn First Out ) 일반적으로 front 와 rear 라는 변수를 사용한다. 무엇이 앞으로 처리될 것인지 저장한다. 987 123 456 front rear
  • 5.
    Queue put queue[rear++]= value; get value = queue[front++];
  • 6.
    DFS Depth FirstSearch 일단 진행하고 보는 것. 지나온 과정을 저장하면서 계속 나아감 -> stack 구조가 알맞음. 경로 추적에 용이. 재귀 함수를 이용하면 구현이 쉬움. Flood fill, Shortest path 와 같은 문제에서 비효율적임.
  • 7.
  • 8.
    BFS Breadth FirstSearch 한꺼번에 진행. 경로의 중복을 최소화 하면서 퍼져나감. 최단 경로 탐색에 용이. DFS 보단 상대적으로 구현이 어려움.
  • 9.