yuns

자료구조 기초 본문

algorithms/#5 DFS and BFS

자료구조 기초

yuuuun 2020. 11. 7. 14:45
반응형

탐색: 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정

자료구조: 데이터를 표현하고 관리하고 처리하기 위한 구조

  • 스택(Stack): FILO, LIFO 구조
    • append(), pop()메소드 사용
st = []
st.append(2)
st.append(3)
st.pop()

 

  • 큐(Queue): FIFO구조
from collections import deque

queue = deque()
queue.append(5)
quque.append(2)
quque.popleft()

#for printing
queue.reverse()
  • 재귀함수(Recursive Function): 자기 자신을 다시 호출하는 함수
    • 함수로 정의하고 호출하는데 너무 많이 호출하게 될 경우 RecursionError 발생
    • 재귀함수의 종료조건 작성 필요
    • 재귀 함수의 수행은 stack 자료구조를 이용
# 반복적으로 구현한 n!
def factorial_iterative(n):
	res = 1
    for i in range(1, n+1):
    	res *= i
    return res

# 재귀적으로 구현한 n!
def factorial_recursive(n):
	if n <= 1:
    	return 1
    return n * facorial_recursive(n - 1)
반응형

'algorithms > #5 DFS and BFS' 카테고리의 다른 글

dfs예시  (0) 2020.11.10
DFS vs BFS  (0) 2020.11.07
BFS: 너비 우선 탐색  (0) 2020.11.07
DFS: 깊이 우선 탐색  (0) 2020.11.07
Comments