목록SelfStudy/JAVA 로 배우는 알고리즘 (4)
YJ의 새벽
**이진트리 (Binary Tree) -- 트리의 분지 수가 2 이하인 트리 -- 자식이 최대 2개이기때문에 왼쪽자식과 오른쪽 자식으로 구분 **이진트리 종류 -정 이진트리 : 모든 노드의 차수가 0또는 2인 이진트리 -포화 이진트리 : 정 이진트리에서 모든 단말 노드의 깊이가 같은 이진트리 -완전 이진트리 : 마지막 레벨은 노드가 왼쪽에 몰려있고 마지막레벨을 제외하면 포화 이진트리구조를 띄고있는 이진트리 -사향 이진트리 : 한 줄로 연결되어있는 형태의 이진트리 ------------------------------------------------------------------------------ --이진트리 전위순회 :: A - B - D - E - C - F - G --현재노드방문 -> 왼쪽자식노..
피보나치수열 -- 다음 항이 이전 두개의 합으로 표현되는 수열. --재귀함수로 피보나치수열을 구현 --반복문을 이용한 구현 --동적계획법을 이용한 구현. public class Fibonacci { public Fibonacci() { // 20 번째 값을 구한다. int result = recursion(20); System.out.println(result); repeat(20); dp(20); } private int recursion(int n) { // 재귀함수로 구현. if( n
DFS ( Depth First Search ) --그래프 탐색의 한 종류 --깊이 우선 탐색 이라고 부름. --루트 노드의 임의의 노드에서 시작하여 , 최대로 진입할 수 있는 깊이까지 탐색한 후 다른 노드로 탐색하는 방식. --Stack을 사용하여 데이터를 탐색. 장점 -- 현 경로들의 노드들만 기억하면 되므로, 저장공간 수요가 비교적 적음 -- 목표노드가 깊은단계있을경우 해를 빨리 구할수 있음. 단점 -- 해가 없는 경로가 깊을경우 탐색이 오래걸림. -- 얻어진 해가 최단경로가 된다는 보장이없음. --인접행렬 ( Adjacency Martix ) --인접리스트 BFS ( Breadth First Search ) -- 너비 우선 탐색이라고 부름 -- 루트 노드나 임의의 노드에서 시작하여 인접한 노드를 ..
--효율적으로 접근하고 수정할 수 있도록 데이터를 구성하고 저장하는 법. --각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할수 있도록 자료를 구분하여 표현한 것. 선형 자료구조 : 자료룰 구성하는 데이터를 순차적으로 나열시킨 구조 -- 배열 (Array) -- 연결 리스트 (Linked List) -- 스택 (Stack) -- 큐 (Queue) 비선형 자료구조 : 하나의 자료 뒤에 여러개의 자료가 존재하는 구조 --트리 (Tree) --그래프 (Graph) -----------------------------선형 자료구조 ** 배열 ? : 가장 기본적인 자료구조로 특정 자료형의 데이터를 일렬로 나열한 구조 -- 데이터 접근이 용이 -- 데이터 삽입/삭제가 어려움 ..