• 검색 결과가 없습니다.

트리트리

N/A
N/A
Protected

Academic year: 2021

Share "트리트리"

Copied!
41
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

9 9 트리 트리

• 기본 개념

• 이진트리

• 신장트리

• 최소 신장트리

• 기본 개념

• 이진트리

• 신장트리

• 최소 신장트리

(2)

학습목표 학습목표

IT CookBookIT CookBookIT CookBookIT CookBook

그래프의 특수한 형태인 트리에서 사용되는 용어들과 개념을 파악한다 . 이진트리의 여러 가지 종류와 순회 방법을 살펴본다 .

원소들을 특별한 순서로 구성한 이진탐색트리를 이해한다 .

이진트리로 정의되는 허프만 코드를 이해하고 허프만 트리를 만든다 .

깊이우선탐색과 너비우선탐색 알고리즘을 이용하여 신장트리를 구한다 .

프림 알고리즘과 크루스칼 알고리즘을 이용하여 최소신장트리를 구한다 .

(3)

Section 01 Section 01 Section 01

Section 01

기본 개념 기본 개념

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-1] 회사의 조직도

트리 (tree)

그래프에서 가장 중요한 클래스 (class)

가계도나 회사의 조직도 등을 나타낼 때 유용하게 사용되고 있는 비선형 자료구조 (non-linear data structure)

계층적 자료구조 (hierarchical data structure)

(4)

Section 01 Section 01 Section 01

Section 01

기본 개념 기본 개념

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-3] 트리의 예

노드 (node)

트리를 구성하는 정점 (vertex)

루트 (root)

트리의 가장 상위에 있는 노드

(5)

Section 01 Section 01 Section 01

Section 01

기본 개념 기본 개념

IT CookBookIT CookBookIT CookBookIT CookBook

(6)

Section 01 Section 01 Section 01

Section 01

기본 개념 기본 개념

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-4] 트리의 예

숲 (forest)

연결되어 있지 않아서 트리는 아니지만 그래프의 각 성분은 트리로 되어 있는 그래프

서브트리 (subtree)

트리

T1

T2

(7)

Section 01 Section 01 Section 01

Section 01

기본 개념 기본 개념

IT CookBookIT CookBookIT CookBookIT CookBook

노드 차수 (degree)

하나의 노드가 가지고 있는 서브트리의 수

트리의 차수 (degree of tree)

트리에 있는 노드 차수 중에서 가장 큰 차수

리프 (leaf) 노드 또는 단말 (terminal) 노드

트리에서 자식 노드를 가지고 있지 않은 노드 , 즉 차수가 0 인 노드

레벨 (level)

어떤 노드가 루트에서 얼마나 떨어져 있는지를 나타냄

(8)

Section 01 Section 01 Section 01

Section 01

기본 개념 기본 개념

IT CookBookIT CookBookIT CookBookIT CookBook

트리의 깊이 (depth) 또는 높이 (height)

트리에서 가장 큰 레벨

조상 (ancestor)

해당 노드에서 루트에 이르는 경로 위에 있는 모든 노드

자손 (descendant)

해당 노드와 연결되어 있는 하위 레벨의 모든 노드

(9)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-5] 이진트리의 예 [ 그림 9-6] 서로 다른 이진트리

(10)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-7] 사향이진트리의 예

(11)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-8] 포화이진트리의 예

[ 그림 9-9] 완전이진트리의 예

(12)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-10] (x-2)*(y+3) 에 대한 이진트리

[ 그림 9-11] 이 진트리의 배열 표현

배열을 이용하여 나타낸 이진트리

여러 개의 행과 두 개의 열로 된 2 차원 배열 사용

각 행은 노드의 값을 나타내고 ,

두 개의 열은 각각 왼쪽 자식 노드의 값과 오른쪽 자식 노드의 값을 나타내며 ,

자식 노드가 없는 경우에는 그 값을 0 으로 나타냄

노드를 삭제하거나 새로운 노드를 삽입할 때 불편

(13)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-12] 이진트리의 연결리스트 표현

연결리스트 (linked list) 를 이용하여 나타낸 이진트리

각 노드는 세 개의 필드로 구성

왼쪽 포인터

노드의 값을 저장하는 부분

오른쪽 포인터

(14)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(15)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(16)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(17)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 표 9-1] 표기법의 형식과 예

(18)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(19)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-14] 이진탐색트리의 예

(20)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(21)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-16] 최대힙과 최소힙

(22)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-17] 1 차원 배열로 나타낸 최대힙과 최소힙

1 차원 배열로 나타낸 힙의 성질

(23)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(24)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(25)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

데이터 압축 (data compression)

발생 빈도가 높은 문자에는 적은 비트를 할당하고 ,

발생 빈도가 낮은 문자에는 그 보다 많은 비트를 할당하여 저장될 파일의 데이터 크기를 줄이는 것

허프만 코드 (Huffman code) 가 기본적인 방식

문자에 대한 비트 스트링의 압축뿐만 아니라 오디오나 이미지와 같은 파일의 압축에 도 사용

(26)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(27)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(28)

Section 02 Section 02 Section 02

Section 02

이진트리 이진트리

IT CookBookIT CookBookIT CookBookIT CookBook

(29)

Section 03 Section 03 Section 03

Section 03

신장트리 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(30)

Section 03 Section 03 Section 03

Section 03

신장트리 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(31)

Section 03 Section 03 Section 03

Section 03

신장트리 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

깊이우선 신장트리 (depth first spanning tree)

깊이우선탐색 알고리즘을 이용하여 만들어진 신장트리

너비우선 신장트리 (breadth first spanning tree)

너비우선탐색 알고리즘을 이용하여 만들어진 신장트리

(32)

Section 03 Section 03 Section 03

Section 03

신장트리 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(33)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

[ 그림 9-19] 통신 요금을 가중치로 나타낸 그래프

(34)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

프림 (Prim) 의 알고리즘

가장 작은 가중치를 가진 에지를 선택하고 이 에지와 연결된 정점에서 다시 가장 작은 가중치를 가진 에지를 선택하여 신장트리에 추가하는 것을 반복

트리에 추가되는 에지들은 순환을 형성하지 않아야 함

프림의 알고리즘은

n 개의 정점에 대하여 n-1 개의 에지가 추가되었을

때 종료

알고리즘의 각 단계에서 가중치가 같은 에지들이 있을 때 이 중 하나의 에

지를 선택하는 기준은 없음

(35)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(36)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(37)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(38)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

크루스칼 (Kruskal) 의 알고리즘

가장 작은 가중치를 가진 에지를 선택하고 이 에지와 연결되어 있지 않은 에지더라도 가중치가 작은 에지를 순서대로 선택하여 신장트리에 반복함 트리에 추가되는 에지들은 순환을 형성하지 않아야 함

n 개의 정점에 대하여 n-1 개의 에지가 추가되었을 때 종료

(39)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(40)

Section 04 Section 04 Section 04

Section 04

최소 신장트리 최소 신장트리

IT CookBookIT CookBookIT CookBookIT CookBook

(41)

IT CookBook IT CookBook IT CookBook IT CookBook

Thank you

참조

관련 문서

– 많은 통계량 중에서 어느 것을 선택하여 모수를 추정하는 것이 바람직할 것인가 하는

일상 생활을 하는데 필요핚 농업에 관핚 기본적인 지식과 기술을 갖게 하는 것”..

[r]

이처럼 다양한 의견을 수렴하여 농작물재해보험이 보다 많은 농가 가 참여하는 건실한 경영안정장치로 정착·발전하기 위한 내실화 방안을 모 색하는 것은 시급한

누적 도수분포  각 계급의 상한값과 같거나 그 보다 작은 값을 가지는 항목의 수를 나타낸다. 누적 상대도수분포 – 각 계급의 상한값과 같거나 그

 즉, 애트리뷰트들 간에 존재하는 여러 가지 데이터 종속 관계를 무리하게 하나의 릴레이션에 표현하려는 데서 발생.

 연속되는 코드들 간에 하나의 비트만 변화하여 새로운 코드가

• 광고, 선전을 많이 하기 때문에 판매비용이 증가하여 가격 인상 의 요인이 된다.. –