목록자료구조 (3)
컴퓨터는 잘못이 없다..
#책 페이지 p.143 #탐색 알고리즘 BFS에서 사용하는 자료구조 큐 자료구조 #BFS는 어떻게 동작할까? 👉BFS는 '너비 우선 탐색 알고리즘' 이다. 쉽게 말해 가까운 노드부터 탐색하는 알고리즘이다. 쉽게 말해 가까운 노드부터 탐색하는 알고리즘이다. DFS는 최대한 멀리 있는 노드를 우선으로 탐색한다면 BFS는 반대이다. 인접한 노드를 반복적으로 큐에 넣도록 알고리즘을 작성하면 자연스럽게 먼저 들어온 것이 먼저 나가게 되어, 가까운 노드부터 탐색을 진행하게 된다. 👉BFS는 큐 자료구조를 이용하며 구체적인 동작 과정은 다음과 같다. ① 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다. ② 큐에서 노드를 꺼내 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리를 한다...
#스택 스택 : 박스 쌓기에 비유할 수 있음. 박스는 아래에서부터 위로 차곡차곡 쌓고 아래에 있는 박스를 치우기 위해서는 위에있는 박스를 먼저 내려야함. 이러한 구조를 선입후출(FILO) 구조 또는 후입선출(LIFO) 구조 라고 함 #파이썬의 스택 구현 리스트(stack=[])로 구현하며 push, pop은 아래와 같은 함수로 구현한다. i를 push : stack.append(i) 최상단 원소를 pop : stack.pop() #스택 예제 stack=[] stack.append(5) #5를 스택에 push stack.append(2) stack.append(3) stack.append(7) stack.pop() #최상단 원소를 pop stack.append(1) stack.append(4) stack...
#탐색 탐색 : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 프로그래밍에서는 그래프, 트리 등의 자료구조 안에서 탐색을 하는 문제를 자주 다룬다. 대표적인 탐색 알고리즘으로는 DFS와 BFS를 꼽을 수 있다. #DFS/BFS를 위해 필요한 자료구조 스택과 큐 #자료구조란? 자료구조 : '데이터를 표현하고 관리하고 처리하기 위한 구조'를 의미한다. #스택과 큐 스택과 큐는 자료구조의 기초 개념으로 다음의 두 핵심적인 함수로 구성된다. -삽입(push) : 데이터를 삽입한다. -삭제(pop) : 데이터를 삭제한다. #오버플로우, 언더플로우 스택과 큐를 사용할 때는 오버플로우와 언더플로우를 고민해야한다. -오버플로우 : 특정한 자료구조가 수용할 수 있는 데이터의 크기를 이미 가득 찬 상태에..