자료구조 3

자료구조/알고리즘 - Tree traversal, BFS/DFS

1-6.트리 순회(Tree traversal) -특정 목적을 위해 트리의 모든 노드를 한 번씩 방문하는 것 -트리 구조는 계층적 구조라는 특별한 특징을 가지기 때문에, 모든 노드를 순회하는 방법엔 크게 세 가지가 있음 (1)전위 순회(Preorder traverse) (2)중위 순회(inorder traverse) (3)후위 순회(postorder traverse) +균형 이진 탐색 트리 : 이진 탐색 트리의 문제점을 보완하고자 나온 트리 *왼쪽 서브 트리의 높이와 오른쪽 서브 트리의 높이 차이가 1 이하인 것이 특징으로, 이러한 높이 차이를 균형인수(Balance Factor)라고 함. 1-7.BFS / DFS -그래프의 탐색은 하나의 정점에서 시작하여 그래프의 모든 정점들을 한 번씩 방문(탐색)하는 ..

부트캠프 2023.01.18

자료구조/알고리즘 - Tree, Graph, Binary

1-3.트리(Tree) -그래프의 여러 구조 중 단방향 그래프의 한 구조로, 하나의 뿌리로부터 가지가 사방으로 뻗은 형태 -데이터가 바로 아래에 있는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료구조 -데이터를 순차적으로 나열시킨 선형 구조가 아닌, 하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조 -Tree의 구조와 특징 (1)루트(Root) : 하나의 꼭짓점 데이터 (2)간선(Edge) : 여러 개의 데이터를 연결하는 선 (3)노드(Node) : 각 데이터를 지칭하며, 두 개의 노드가 상하 계층으로 연결되면 부모/자식 관계를 가짐 *부모 노드(Parent Node), 자식 노드(Child Node), 리프 노드(Leaf Node : 자식이 없는 노드) (4)깊이(Depth) ..

부트캠프 2023.01.17

자료구조/알고리즘 - 재귀 함수

1.재귀 함수(recursion function) : 자기 자신을 호출하는 함수 -재귀 : 원래의 자리로 되돌아가거나 되돌아옴 -장점 (1)여러개의 반복문을 불필요하게 사용하지 않기 때문에, 코드 간결화 및 수정이 용이함 (2)변수를 여러개 사용할 필요가 없음 -단점 (1)코드의 흐름을 직관적으로 파악하기 힘듦(가시성down) (2)반복문에 비해 더 많은 메모리 사용(재귀함수는 반복하여 메서드를 호출하며 지역변수, 매개변수, 반환값을 모두 process stack에 저장하기 때문) (3)메서드가 종료된 후 복귀를 위한 컨텍스트 스위칭 비용 발생(컨텍스트 스위칭이 너무 잦으면 오버헤드가 발생하여 성능이 떨어짐) *비용이 높음 = 오버헤드 발생 -재귀를 사용하기 적합한 경우 (1)주어진 문제를 비슷한 구조의..

부트캠프 2023.01.12