이진트리 3

알고리즘 시험공부) 이진탐색 트리와 연산

실습 - 1: 이진 탐색트리 만들기 메소드 역할 BinaryTree copy(BinaryTree btree) 매개 변수로 받은 btree를 복사 boolean equal(BinaryTree btree, BinaryTree ctree) 매개변수로 받은 btree와 ctree가 같은지 확인 BinaryTree swap(BinaryTree btree) btree를 swap boolean isLeaf() 리프노드인지 확인하는 함수 int size() 이진 트리의 노드의 개수를 구하는 함수 int height() 이진 트리의 높이를 구하는 함수 int numLeaves() 터미널 노드의 개수를 확인하는 함수 void printNode(BinaryTree T) 이진트리T 출력 BinaryTree insertKey(..

알고리즘 2022.10.17

[Algorithm]이원 탐색 트리(Binary Search Tree)

특징: 임의 키를 가진 원소를 삽입, 삭제, 검색하는데 효율적인 자료구조 정의: 모든 원소는 상이한 키를 가짐 + 왼쪽 키 공백일 시 실패로 종료 -> 루트키가 x이면 성공으로 종료 - 키 값 x < 루트 키 일때, 왼쪽 서브트리만 탐색, 또는 반대로 - 알고리즘 public BinaryTree find(String x) { BinaryTree T = btree; int result; while (T != null) { // 비교를 해서 data보다 작음으로 왼쪽 링크를 쫒아감. if ((result = x.compareTo((String) T.data)) < 0) { // 왼쪽 링크 쫓아감 T=T.llink; } /..

알고리즘 2022.10.07

[Algorithm]트리와 이진트리의 기본 개념

트리(Tree): 계층형 자료구조 - 하나의 node = 그 자체로 트리 = root - 트리의 기본 성질: 노드가 N개인 트리는 항상 N - 1개의 링크를 가짐 * node: 데이터 필드 + 링크 필드 * 노드의 차수(degree): 한 노드가 가진 서브 트리의 수(=각 노드의 가지 수) * 노드의 부모 및 자식 * 트리의 차수: 노드들 차수 중 최대 차수 * 노드의 레벨: root = level 0, 트리의 특정 깊이 * 노드의 높이 또는 깊이: 루트 도달하기 위해 거쳐하는 간선 수 ex. I의 깊이= 2, L의 깊이=3 이진 트리(Binary Tree): node의 유한 집합 - 각 노드는 최대 2개의 자식을 가짐( 왼, 오 중 하나가 공백도 허용) - 리프 노드(leaf node): 둘다 공백일 ..

알고리즘 2022.09.28