20일차_221004 수업 내용은 그간 했던 연습문제들에 대한 반복숙달과 질문을 통한 문제풀이 시간이었으므로
별도로 적을 내용이 없음 (본 글에 적힌 내용과 다수 중복)
하지만 기존 내용들을 다시 되새기고 복습할 수 없는 유의미한 시간이었다
DFS와 스택
- 재귀함수 자체가 스택을 쓰고 있기 때문에 재귀함수를 쓰면 DFS를 쉽게 사용할 수 있었던 것
- 함수 호출과정 자체가 스택과 깊은 관련이 있음 (호출스택)
- 따라서 재귀를 스택으로도 풀 수 있음
- 개인적으로 시간을 내서 스택을 이용해 재귀 풀어보기
그래프 DFS에 대한 이야기
- 그래프는 트리와 달리 싸이클이 존재하므로, 왔던 곳은 다시 가지 않도록 구현해줘야 함(via 배열 사용)
- 연결되지 않은 정점을 통해 초보자사냥터 구현 (고레벨이 돼서는 연결을 끊어서 오지 못하도록)
Tree 자료구조에 대한 내용
- 트리는 그래프 자료구조의 일종
- 트리의 조건으로 단방향이어야 하며, 싸이클이 없어야 하고, 부모자식인 그래프여야 한다
Binary Tree에 대한 내용
- 트리 중에서 한 부모가 두 명의 자식만 있는 트리를 가리킴
struct Node
{
int data;
Node* left;
Node* right;
}
- 이런 노드로 만들어진 트리
1차원 배열에 Binary Tree 집어넣기
- 루트 노드를 인덱스 1번에 넣고 나머지는 아래와 같은 공식으로 접근이 가능하다
- 좌측 노드 = 부모 노드 * 2
- 우측 노드 = 부모 노드 * 2 + 1
- 반대로 좌측, 우측 노드를 2로 나눈 몫을 취하면 그게 부모 노드이다.
'C++ > [AssortRock] C++ 기초 다지기' 카테고리의 다른 글
CPP_1. AssortRock 15일차 오프라인 수업_220927 (0) | 2022.09.28 |
---|---|
CPP_1. AssortRock 14일차 오프라인 수업_220926 (0) | 2022.09.27 |
CPP_1. AssortRock 13일차 오프라인 수업_220923 (0) | 2022.09.27 |
CPP_1. AssortRock 9일차 오프라인 수업_220919 (0) | 2022.09.20 |
CPP_1. AssortRock 8일차 오프라인 수업_220916 (0) | 2022.09.18 |
댓글