목록분류 전체보기 (464)
코드네임 :
NIL 닐일반적으로 이진 트리의 노드는 값과 left 및 right를 가지는데, left나 right 중 하나 이상이 None 일 수 없음 - 즉 좌측 자식이 없거나, 우측 자식이 없거나, 둘다 없거나모든 None 을 NIL 로 규정 시 아래와 같은 트리를 얻을 수 있음 모든 leaf노드 is NIL값을 가지는 모든 노드는 내부 노드 Recoloring & Restructing 걍 아래는 위에꺼 손으로 해보기 전 적어놧던 개념.. Recoloring 과정>> 원소 추가시엔 Red만 추가하기 떄문에, Black의 수는 신경 쓸 필요 없고, Red 연속만 신경쓰기 그런데 중간에 삼촌 노드 땜에 만족하지 않는 경우가 생겼다! ( NIL = 검정)이땐 어떻게 해야 할까? Restruc..
이진 탐색 트리의 한계- 노드가 N개인 이진 탐색 트리에서 삽입/삭제/탐색에 드는 시간복잡도 : 최악의 경우 O(N) >> 아래와 같은 최악의 불균형 모양일 때,>> 80을 삽입하고자 하면 6개 노드를 모두 다 돌아야함.. >> O(N)BUT!!>> 균형 잡힌 트리의 경우>> 최악의 상황이더라도 연산에 드는 시간복잡도 : O(logN)>>> 높이 h만큼의 노드를 탐색해야하므로 시간복잡도는 O(hN)>>> O(hN) = O(logN) 트리에서 균형이란?임의 노드의 Balance Factor= 좌측 서브트리의 높이 - 우측 서브트리의 높이 >> 아무것도 없는 부분은 -1로 간주함 AVL 트리= 균형잡힌 이진탐색트리(조건)1. 이진탐색트리 이자2. 모든 노드의 Balance Factor의 절대값이 1 이하인 ..
탐색트리란?: 탐색을 위한 트리기반의 자료구조 이진 탐색이란?반을 쪼갬 -> 23이 26보다 작으니 왼쪽에 있겠군 -> 17보다 크니 오른쪽에 있겠군 -> 23이 여기있네! 이진 탐색 트리 : 좌측 서브 트리 값 힙 Heap vs 이진 탐색 Binary Search1. 힙은 부모 - 자식 간 데이터 크기에 중시 ( ex) 맥스힙은 부모가 자식보다 커야 함) but 이진 탐색 트리는 한 노드를 기준으로 양쪽 자식간의 데이터 크기에 제한 조건2. 힙은 완전 트리 조건을 충족해야하나, 이진트리는 상관 X3. 힙은 중복을 허용하나, 이진 탐색 트리는 중복을 허용하지 않음 삽입 >- 이진 탐색 트리의 루트 노드로부터 출발- 삽입하고자 하는 값과 현재노드의 값을 반복해서 비교하며..
(어머이거 실수로 chap 09 파일에 코드 넣어놓음 ㅋㅋ) 메서드 오버라이딩 사용 이유-> 1. 다형적 표현 가능 (부모 타입으로 선언 + 자식 타입으로 객체 생성 2. 배열로 한번에 관리 가능 메서드 오버라이딩 vs 메서드 오버로딩 어노테이션 @Override: 컴파일러에게 내가 지금 메서드 오버라이딩을 옳게 하고 있는지 검사해주는 칭구- 메서드 오버라이딩하는 부분 위에다가 적어줌오버라이딩 시 접근 범위 실습 中..
setter 와 getter가 있는 이유: 외부에서 객체에 마음대로 접근시 객체의 무결성이 깨질 수 있으므로, private으로 필드 선언후 사용할수 있게 하기 위해 setter 메서드 getter 메서드: 얘를 이용하면 외부에서도 private 필드를 가져올 수 있음그.. getName() 메서드 같은
접근 지정자의 허용 범위 클래스의 접근 지정자: public, default만 사용가능 ⭐️⭐️같은 패키지 내에서만 사용할 것인지 다른 패키지 내에서도 사용할 수 있도록 할 것인지 결정 생성자의 접근 지정자 : 4가지 접근 제한이 모두 적용가능함생성자의 접근 제한에 따라 생성자 호출 가능 여부가 결정됨기본 생성자의 접근 지정자는 클래스의 접근 지정자와 동일함 ➡️ ( 외부에서 그 어떤 짓도 할 수 가 없댜) ➡️ ( 외부에서 그 어떤 짓도 할 수 가 없댜) 필드와 메서드에 사용되는 접근 제한: 4가지 접근 제한 모두 적용 가능함 실습하시긔..
보호되어 있는 글입니다.