yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

AVL 트리란?
~2023.02/1일 1CS지식

AVL 트리란?

2022. 7. 12. 14:06

이진 트리의 문제점

이진 트리의 문제점은 한쪽으로 치우친 형태로 트리 구조가 만들어질 수 있다는 것이다. 이렇게 되면 트리 구조가 아닌 일반적인 연결 리스트와 별 차이가 없는 구조가 되어 이진 트리의 장점을 발휘할 수 없게 된다.

 

편향 트리

이와 같이 이진 트리가 구성되면 검색 시 성능이 O(logN)이라는 이진 트리의 장점을 보장할 수 없게 된다. 최악의 경우에는 성능이 O(N)이 되기도 한다.

 

AVL 트리

AVL 트리는 전체 트리의 구조가 균형이 맞도록 하는 트리이다. 즉, 트리 구조가 한쪽으로 쏠리는 것을 막고자 하는 것이 가장 기본적인 개념이다. G.M Adelson-Velski와 E.M Landi 두 사람이 발표한 논문에서 유래되었고 발표한 사람의 이름 첫 글자를 모아 AVL 트리라고 이름 지어졌다.

AVL 트리의 특징

1. 균형도라는 개념이 있다.

2. 리프 노드의 균형도는 0이다.

3. 균형도는 '왼쪽 자식 트리의 높이 - 오른쪽 자식 트리의 높이'로 계산한다.

4. 왼쪽 자식 노드와 오른쪽 자식 노드의 균형도는 -1, 0, 1의 세 가지 값만 갖는다.

 

출처:

AVL 트리 (AVL tree) (tistory.com),

https://code-lab1.tistory.com/61?category=1213002

'~2023.02 > 1일 1CS지식' 카테고리의 다른 글

DNS와 DHCP란?  (0) 2022.07.16
동기와 비동기, 블로킹과 논-블로킹이란?  (0) 2022.07.15
대표적인 SQL의 종류 3가지와 종류별 명령어는?  (0) 2022.07.14
http의 문제점은 무엇일까?  (0) 2022.07.13
CORS(Cross-Origin Resource Sharing)란 무엇일까?  (0) 2022.07.11
    '~2023.02/1일 1CS지식' 카테고리의 다른 글
    • 동기와 비동기, 블로킹과 논-블로킹이란?
    • 대표적인 SQL의 종류 3가지와 종류별 명령어는?
    • http의 문제점은 무엇일까?
    • CORS(Cross-Origin Resource Sharing)란 무엇일까?
    yooniiverse
    yooniiverse

    티스토리툴바