10. 다차원공간화일 DBLAB, SNU v 다차원데이타 u 다차원데이타 (multidimensional data) 전통적인 1차원데이타레코드가아니라 CAD (computer aided design) 나지리정보시스템 (geographical information sys

Size: px
Start display at page:

Download "10. 다차원공간화일 DBLAB, SNU v 다차원데이타 u 다차원데이타 (multidimensional data) 전통적인 1차원데이타레코드가아니라 CAD (computer aided design) 나지리정보시스템 (geographical information sys"

Transcription

1 10. 다차원공간화일 v 다차원데이타 u 다차원데이타 (multidimensionl dt) 전통적인 1차원데이타레코드가아니라 CAD (computer ided design) 나지리정보시스템 (geogrphicl informtion system) 에서의선 (line), 면 (plne), 위치 (loction) 와같은데이타 다차원데이타를나타내는 (x, y) 또는 (x, y, z) 는차원당하나의값 u 다차원데이타는단일키화일구조로처리불가 u 다차원데이타의접근을위해서는다차원인덱스 (multidimensionl index) 구조가필요 2

2 다차원공간화일이란? u 여러개의필드 ( 차원 ) 를동시에키로사용하는화일 u 다차원공간화일을트리로표현 k-d 트리 ( 75) k-d-b 트리 ( 81) 격자화일 (Grid File) ( 84) 사분트리 (Qudtree) ( 84) R- 트리 ( 84), R + - 트리 ( 87), R * - 트리 ( 90) 3 다차원인덱스 인덱스 (multidimensionl index) 기법 (multidimensionl index) 기법 1. PAM (Point Access Method) 다차원점데이타 (multidimensionl point dt) 를공간에서저장, 검색하는점접근방법 k-d 트리, k-d-b 트리, 격자화일 (grid file) 2. SAM (Sptil Access Method) 선 (line), 면 (plne), 다각형 (polygon), 다면체 (polyhedron) 같은다차원공간데이타 (multidimensionl sptil dt) 를저장, 검색할수있는공간접근방법 R-트리, R * -트리, R + -트리 4

3 v k-d 트리 u k-d(k-dimensionl) 트리 k 차원의점데이타를인덱스하는구조 dt structure for ssocitive serch 이원탐색트리를다차원공간 (multidimensionl spce) 으로확장한것 다차원이원탐색트리 (multidimensionl binry serch tree) 기본구조와알고리즘은이원탐색트리와유사 분기조건은 < 이아니라 임 트리의레벨을내려가면서차원의필드값을차례로번갈아가며비교 예 ) 3차원의데이타 (x,y,z) 의경우 : x à y à z à x à y à z à,,, u 특징 메인메모리상에서동작하는인덱스구조 소규모의다차원점데이타 (multidimensionl point dt) 를인덱싱할때적합 (PAM) 균형트리가아님 5 k-d 트리에서의데이타삽입 u 다음과같은 2차원공간의점 (x,y) 데이타를, b, c, j의순서로 k-d 트리에삽입하는경우 점 b c 위치 (5, 4) (2, 7) (9, 5) b j f (10,10) d e f g h i (3, 1) (7, 2) (9, 7) (1, 4) (4, 3) (8, 2) g d h e i c j (4, 8) (0,0) 6

4 k-d 트리에서의데이타삽입 u 점 (5,4) 의삽입 루트로저장 (10,10) (5,4) :x (0,0) 점 가삽입된뒤의 2-d 트리 7 k-d 트리에서의데이타삽입 u 점 b(2,7) 의삽입 루트의 x 값과비교, 작으므로왼쪽자식노드에삽입 (5,4) :x (10,10) b (2,7) :y b (0,0) 8

5 k-d 트리에서의데이타삽입 u 점 c(9,5) 의삽입 루트의 x 값과비교, 크므로오른쪽자식노드에삽입 (5,4) :x (10,10) b (2,7) c (9,5) :y b c (0,0) 9 k-d 트리에서의데이타삽입 u 점 d(3,1) 의삽입 루트의 x 값과비교, 작으므로왼쪽자식노드로분기 점 b의 y값과비교, 작으므로왼쪽자식노드에삽입 (10,10) (5,4) :x b b (2,7) c (9,5) :y c d (3,1) :x d (0, 0) 10

6 k-d 트리에서의데이타삽입 u 삽입이완료된 k-d 트리 (5,4) :x (10,10) b (2,7) c (9,5) :y b j f c d (3,1) j (4,8) e (7,2) f (8,7) :x g h e i g (1,4) h (4,3) i (8,2) :y d (0,0) 11 k-d 트리에서의데이타검색 u 위치 (4,8) 의점은무엇인가? 루트 (5,4) 에서 x 값을비교 : 4 5 이므로왼쪽서브트리로분기 점 b 에서 y 값을비교 : 7 < 8 이므로오른쪽서브트리로분기 점 j 를발견. 검색완료 (5,4) :x (10,10) b (2,7) c (9,5) :y b j f c d (3,1) j (4,8) e (7,2) f (8,7) :x g h e i g (1,4) h (4,3) i (8,2) :y d (0,0) 12

7 k-d 트리에서의데이타검색 u 위치 (6,2) 의점을검색하라 루트 (5,4) 에서시작하여점 c(9,5), 점 e(7,2) 를검사한다음에왼쪽서브트리로분기시도. 그러나분기실패 ( 널 ) 로해당점레코드가없다는것을확인. u k-d 트리의높이가 h라하면최악의검색시간은 O(h) 가됨 u k-d 트리에서의삭제는복잡 삭제된노드의서브트리들에대한재구성요구발생 13 k-d 트리의단점 u 균형트리가아니므로데이타의입력순서나분포에따라트리의높이가극단적으로높아지면검색성능이저하가능 예 ) g, d, b, e, h,, f, c, i, j 의순서로입력된예 g (1,4) :x (10,10) d (3,1) b (2,7) :y :x b j f e (7,2) i (8,2) h (4,3) :y :x g c j (4,8) (5,4) :y h e i f (8,7) :x d c (9,5) :y (0,0) 14

8 v k-d-b(k-dimensionl B-tree) 트리 u k-d 트리와 B-트리의특성을결합 디스크기반으로다차원점데이타를효율적으로검색, 저장하기위한구조 디스크페이지크기의노드들로구성된다원탐색트리 (multiwy serch tree) 균형트리 루트에서리프노드까지의탐색경로길이가모두동일 u 다중키레코드검색을위한인덱스레코드구조 : (key 0, key 1,, key K-1, 주소 ) key i 는도메인i에속하는탐색키 k는차원 ( 필드 ) 수 u k-d-b 트리는범위질의 (rnge query) 를지원 범위질의는각탐색키값이 min i 과 mx i 로명세됨 min i key i mx i, 0 i k-1 15 k-d-b 트리 u 점 (point) 는카티션프로덕트, ( 도메인 0 도메인 1 도메인 K-1 ) 의한원소 u 영역 (region) 은다음 C와같은성질을만족하는모든점 x i, 0 i (k-1) 들의집합 C: min i x i mx i, 0 i (k-1), min i, mx i 는도메인i의원소 u 점은 x i, 0 i (k-1) 만저장 k 개의필드값을가진하나의레코드인스턴스에해당 u 영역은 min i 와 mx i, 0 i (k-1) 를저장 k 개의범위조건을만족하는레코드의집합 16

9 k-d-b 트리 u 2 개의필드 ( 차원 ) 로표현된레코드의예 키와몸무게는탐색을위한도메인 선수 키 170 몸무게 65 필드 2 ( 몸무게 ) b c d e f g h 필드 1( 키 ) 영역은 ([165, 180], [60, 70]) 17 k-d-b 트리의구조 u k-d-b 트리는루트페이지와자식페이지로구성 u 페이지는영역페이지와점페이지로구분 영역페이지 (region pge) : < 영역, 페이지-id> 쌍의엔트리들을포함하는노드 점페이지 (point pge) : < 점, 주소 > 쌍의엔트리들을포함하는단말노드. 주소는점데이타레코드가저장되어있는주소. u 페이지크기는디스크페이지크기 엔트리삽입으로오버플로가일어나면분할연산이필요 엔트리삭제로언더플로가일어나면합병연산이필요 18

10 k-d-b 트리의특성 1 각페이지를노드라하고, 영역의페이지 -id 를노드포인터라하면 k-d-b 트리는 root-id 가가리키는다원탐색트리이다. 영역페이지는공백이거나널포인터를포함할수없고점페이지는 < 점, 주소 > 쌍의엔트리만포함한다. 2 모든단말페이지까지의경로길이는동일 3 영역페이지는소영역으로완전분리 (disjoint) 분할할수있다. 이소영역의합은그부모영역과같다. 4 루트페이지가영역페이지이면, 이페이지의소영역들의합은화일전체의영역이된다. 5 자식페이지가점페이지이면이점페이지에있는모든점들은그부모영역에속한다 d-B 트리의예 root-id 영역페이지 점페이지 --- 페이지에포함된영역 ( 흰색 ) --- 페이지에포함되지않은영역 ( 회색 ) --- 점 20

11 k-d-b 트리의연산 ( 검색 ) u u k-d-b 트리가지원하는범위질의는질의영역 (query region) 으로표현 1. 부분범위질의 (prtil rnge query) : 차원이모두범위로명세 2. 부분일치질의 (prtil mtch query) : 차원의일부가점이고, 나머지는범위로명세 3. 완전일치질의 (exct mtch query) : 모든차원이점으로명세 질의영역을만족하는모든레코드 ( 점 ) 를검색하는알고리즘 1 root-id가널이면종료, 그렇지않으면변수 pge는루트페이지를가리키게한다. 2 변수 pge가점페이지를가리키면질의영역에속하는 < 점, 주소 > 를검사해서그주소에해당하는레코드를검색 3 영역페이지인경우는질의영역과중첩되거나포함되는모든 < 영역, child-id> 에대해차례로변수 pge가이페이지를가리키게하고단계 2를다시수행 21 2-d-B 트리의질의영역검색예 root-id 질의영역

12 k-d-b 트리의연산 ( 삽입 ) u 원소값 x i 에따라영역 I x x I y 를분할하는방법 x 이구간 (intervl) I x 에포함되는경우에구간 I x =[min x, mx x ] 는영역 I x x I y 를다음과같이두소영역으로분할 1 [min x, x ] x I y : 왼쪽영역 2 [x, mx x ] x I y : 오른쪽영역 u 원소값 x i 에따라점페이지분할방법 x 값에따라점페이지를오른쪽점페이지와왼쪽점페이지로분할 모든 < 점, 주소 > 쌍에대해 x의값과 x 의값을비교하여오른쪽또는왼쪽점페이지로이동하고원래의점페이지는삭제 23 k-d-b 트리의연산 ( 삽입 ) x 에의한점페이지분할 분할원소 분할전 분할후 왼쪽페이지 오른쪽페이지 24

13 k-d-b 트리의연산 ( 삽입 ) u 원소값 x i 에따라영역페이지분할방법 x 값에따라영역페이지를오른쪽영역페이지와왼쪽영역페이지로분할 모든 < 영역, 페이지-id> 쌍엔트리를오른쪽또는왼쪽페이지로이동하고원래의페이지는삭제 u 영역의엔트리들을분할하는방법 원래영역페이지내의각 < 영역, 페이지 -id> 에대해 1 영역이 x 의왼편에있으면 < 영역, 페이지 -id> 를왼쪽영역페이지로이동 2 영역이 x 의오른편에있으면 < 영역, 페이지 -id> 를오른쪽영역페이지로이동 3 x 이영역중간을가로지르면그영역을 x 값에따라두개의소영역으로분할하고각각오른쪽페이지와왼쪽페이지에첨가한다. 25 k-d-b 트리의연산 ( 삽입 ) x 에의한영역페이지분할 분할원소 * * 분할전 * 표시된부분이분할된다 분할후 26

14 k-d-b 트리의연산 ( 삽입 ) u 인덱스레코드 < 점, 주소 > 쌍을삽입하는알고리즘 1 root-id 가널 (null) 이면점페이지를생성하고 < 점, 주소 > 엔트리를저장. 2 < 점, 주소 > 쌍이삽입되어야할페이지를완전일치질의수행방식으로탐색. 페이지에여유공간이있으면 < 점, 주소 > 쌍을페이지에삽입하고종료. 3 삽입하려는점페이지에오버플로가발생하면엔트리들을등분할수있는적절한도메인 i의원소 x i 를선택하여페이지를분할하고엔트리들을이동. 4 분할된페이지의부모영역페이지에있는원래의 < 영역, 페이지 -id> 를새로운 < 왼쪽영역, 페이지 -id>, < 오른쪽페이지, 페이지 -id> 로대체한다. 이엔트리의증가로페이지가오버플로되면이영역페이지를분할하고단계 4를다시실행한다. 5 루트페이지가분할하게되면새로운루트페이지를생성하여조정한다. 이때 k-d-b 트리의높이는하나증가된다. 27 k-d-b 트리의연산 ( 삭제 ) u 점페이지에서 < 점, 주소 > 쌍을완전일치질의로검색후삭제 u 공간이용률을높이기위해재구성 합병 : 두영역의엔트리들을하나의큰페이지로통합 언더플로 : 두형제영역을합병또는엔트리들의재분배 u 두영역의합이보다큰직사각형형태의영역을구성하게되면합병가능 (joinble) u 합병이불가능한경우 영역 A 와 B 또는 A 와 C B A C 28

15 v 격자화일 (Grid file) u 격자화일 공간상의점데이타를저장하는다차원인덱스구조 (multidimensionl index structure) 전체공간을격자 (grid) 로분할하여격자단위로데이타를저장 격자의크기는데이타의삽입에따라분할되어작은격자로변환 u 특징 디스크기반 대용량의다차원데이타를처리 해싱기반 일반적으로두번의디스크접근으로데이타검색 29 격자화일의구성 u K-차원격자화일 k개의선형눈금자 (liner scle) 와 k-차원의격자배열 (grid rry) 로구성된격자디렉터리 (grid directory) 로관리 이디렉터리가해싱역할을수행 u 선형눈금자 (liner scle) 각차원별눈금정보를표현하며메인메모리에유지 u 격자배열 (grid rry) 선형눈금자에의해분할된격자블록 (grid block) 으로구성 각격자블록에는데이타페이지를가리키는페이지번호 (pge number) 가저장 격자배열과페이지는디스크에저장 30

16 격자화일의구성 u 격자블록과데이타페이지 기본적으로하나의격자블록당하나의데이타페이지 두개이상의격자블록이하나의데이타페이지를공유가능 u x 축과 y 축으로표현되는 2차원격자화일예 x 축은 (0, 5, 10, 15, 20) 의선형눈금자 y 축은 (0, 5, 10) 의선형눈금자 격자배열은각축의선형눈금자에따라구성 각데이타페이지는최대 3개의점데이타를저장 31 격자화일의구성 10 5 b i g f h c e P1 b(4,6) g(8,8) P2 c(16,2) e(18,8) h(13,9) P3 d(7,2) f(9,4) i(6,4) 0 d (2,4) P 선형눈금자격자배열데이타페이지 32

17 격자화일의레코드삽입예 u 예제데이타 데이타 위치 (2, 4) b (4, 6) c d e (16, 2) (7, 2) (18, 8) b g h e f (9, 4) g h i (8, 8) (13, 9) (6, 4) i d f c 33 격자화일의레코드삽입예 u 점 (2,4), b(4,6), c(16,2) 를삽입 하나의격자블록을통해페이지 P1에저장되고 P1은만원 10 (2,4) b(4,6) P1 c(16,2) SY b c SX 34

18 격자화일의레코드삽입예 u 점 d(7,2) 를삽입 페이지 P1 이오버플로가되어격자를분할 각축 (xis) 을순환적으로분할 x=10 으로격자블록을분할하고페이지 P2 를할당 분할된두페이지 P1 과 P2 를트윈 (twin) 이라함 x>10 인레코드들은 P2 로이동 10 (2,4) b(4,6) d(7,2) P1 SY b c(16,2) P2 c 0 d SX 35 격자화일의레코드삽입예 u 점 e(18,8), f(9,4) 를삽입 f를삽입시페이지 P1에오버플로가발생 y=5로격자를분할하고페이지 P3을할당 P1에있는 y<5인레코드들을 P3으로이동 P2는원하지않게분할된두격자가공용 10 b(4,6) P1 SY 5 b f c e P2 c(16,2) e(18,8) P3 (2,4) d(7,2) f(9,4) 0 d SX 36

19 격자화일의레코드삽입예 u g(8,8), h(13,9), i(6,4) 를삽입 i를삽입시 P3에오버플로가발생 x=5로격자를분할하여 P4를할당하고레코드를분할 SY 10 5 b i g f h c e P1 b(4,6) g(8,8) P2 c(16,2) e(18,8) h(13,9) P3 d(7,2) f(9,4) i(6,4) 0 d (2,4) P SX 37 격자화일의질의예 u 메모리에선형눈금자를유지 u x=7, y=2 인데이타의검색예 선형눈금자 (SX, SY) 를검사 x=7: SX 의두번째범위 y=2: SY 의첫번째범위 격자배열인덱스 (2, 1) 을결정 디스크에있는격자배열 G[2,1] 을접근 데이타페이지번호 P3 을검색 디스크데이타페이지 P3 을접근 페이지 P3 에서데이타 d 를검색 u 두번의디스크접근으로데이타접근 격자배열과데이타페이지를각각한번 (7, 2) SY(0, 5, 10) SX(0, 5, 10, 20) P3 G d(7,2) f(9,4) i(6,4) 38

20 격자화일의레코드삭제예 u 점 i(6,4) 의삭제 트윈 P3과 P4는하나의페이지 P3으로합병가능 P3의트윈 P1은합병된격자블록만사용 x=5에의한분할을제거 격자블록합병하고선형눈금자를수정 SY 10 5 b g f h c e P1 b(4,6) g(8,8) P2 c(16,2) e(18,8) h(13,9) P3 d(7,2) f(9,4) (2,4) 0 d SX 39 v 사분트리 (Qudtree) (1) u 사분트리 (Qudtree) 공간을반복적으로분해하는성질을가진계층적자료구조 (hierrchicl dt structure) 를표현하는데사용 u 사분트리의구분 표현하고자하는데이타의유형 공간분해방법 해상도 (resolution) 분해레벨정도를고정또는가변 u 표현대상데이타 점 (point), 영역 (region), 곡선 (curve), 표면 (surfce), 볼륨 (volume) 데이타 곡선이나표면과같이개체의경계를표현하는경우와영역이나볼륨과같이개체의내부를표현하는경우에따라상이한자료구조를사용 40

21 v 사분트리 (Qudtree) (2) u 공간분해방법 이미지공간계층 (imge spce hierrchy) : 각레벨마다공간을일정크기의동일한소공간으로분해 객체공간계층 (object spce hierrchy) : 입력데이타값에따라가변적크기의공간으로분해 u 가장많이사용되는사분트리 영역사분트리 (region qudtree): 2차원의영역데이타를표현 점사분트리 (point qudtree): 다차원점데이타를표현 41 영역사분트리 (region qudtree) (1) u 2차원영역데이타표현에많이사용 u 이미지를표현하는 2진수의배열을동일한크기의사분면 (qudrnt) 으로연속적으로분할하는방법에기초 영역을표현하는배열이전부 1이나 0으로구성되지않으면계속서브사분면 (subqudrnt) 으로분할 가변해상도자료구조 u 영역사분트리예 표현하려는이미지또는영역 () 영역을 2 3 x 2 3 크기의이진배열 (b) 로표현 1은영역에포함된그림원소 (picture element), 즉화소 (pixel) 를표현하고 0은영역에포함되지않은화소를표현 이진배열을블록으로표현 (c) 블록들을사분트리로표현 (d) 42

22 영역사분트리 (2) 영역사분트리예 () (b) (c) 레벨 3 A NW NE SW SE 레벨 2 1 B C E 레벨 D F 19 레벨 (d) 43 영역사분트리 (3) u 영역사분트리의루트노드는이진배열전체에대응 한노드의자식노드들은각각그부모노드가표현하는영역의한사분면을표현 NW, NE, SW, SE 순으로레이블을붙임 리프노드는분할이필요없는블록에해당 흑색노드 (blck node): 블록이완전히영역의내부에포함되어있다는것을표현 1로표현된서브사분면 백색노드 (white node): 블록이완전히영역의외부에있다는것을표현 0으로표현된서브사분면 회색노드 (gry node): 단말이아닌노드 0과 1로표현된블록을모두포함 44

23 점사분트리 (point qudtree) u 점데이타를표현 u 공간을동일하지않은 4개의소공간 (subspce) 으로분할 u 2차원점데이타에대한인덱스로활용 단말노드는버켓의포인터를저장하고인덱스역할 트리에는비교하는점데이타만저장하고전체레코드는인덱스에의해참조되는버켓에저장 u 2차원점데이타레코드는 데이타필드, x 좌표, y 좌표, 4개 (NW, NE, SW, SE ) 의포인타필드를갖는노드로표현 u 다차원데이타를위한이원탐색트리의일반화 45 도시데이타레코드 도시명 X Y 기타정보 대전 진주 속초 강릉 서울 전주 경주 부산

24 점사분트리의표현 (0,100) (60,75) 속초 (100,100) (5,45) 서울 (35,40) 대전 (80,65) 강릉 (25,35) 전주 (50,10) 진주 (85,15) 경주 Y (0,0) X (90,5) 부산 (100,0) 대전 서울 속초 전주 진주 (1) (2) (3) (4) (5) (6) (7) 강릉 (12) (13) (14) (15) (16) 경주 (21) 부산 (8) (9)(10)(11) (17)(18)(19)(20) (22)(23)(24)(25) 단말노드가버켓의포인터를가질때인덱스역할 ( 예 ) 버켓 1 : 0 x<5 와 45 y<100 의값을갖는점데이타레코드들 47 점사분트리 ( 삽입 ) u 이원탐색트리에대한삽입과유사한방법 삽입할레코드의위치를 x, y 좌표값을바탕으로탐색 노드의좌표값과삽입할데이타의좌표값을비교 이과정을반복한후, 도착한리프노드에레코드를삽입할버킷의주소 점사분트리의삽입과정예 ( 그림 ) u 최적점사분트리구성방법 모든점데이타를미리알수있는경우에최적화가가능 어떤노드의서브트리도전체노드수의반이상을갖지않는트리로정의. 이를위해, 모든점데이타들을하나의좌표축 (x) 값으로정렬하고다른좌표축 (y) 값은보조키로사용. 루트는정렬화일의중간값을갖게하고, 나머지는 4개그룹으로나누어루트의네서브트리가되도록함. 48

25 점사분트리의삽입예 (0,100) (100,100) 대전 () (35,40) 대전 Y (0,0) (0,100) X (100,0) (100,100) 대전 SE (b) (35,40) 대전 진주 (50,10) 진주 Y (0,0) X (100,0) 49 점사분트리의삽입예 (0,100) (60,75) 속초 (100,100) 대전 (c) (35,40) 대전 속초 진주 (50,10) 진주 Y (0,0) X (100,0) (0,100) (60,75) 속초 (100,100) 대전 (d) (35,40) 대전 (80,65) 강릉 속초 진주 (50,10) 진주 강릉 Y (0,0) X (100,0) 50

26 점사분트리 ( 검색 ) u 탐색공간을좁혀나가는기법 한레벨내려갈수록탐색공간은 1/4로감소 리프노드가가리키는버킷에서원하는데이타검사 ( 예 ) (95, 8) 에위치한도시를검색하라 대전 (35, 40) 의 SE, 진주 (85, 15) 의 SE, 부산 (90, 5) 의 NE에속하므로버킷 23을조사 u 범위탐색이나근접탐색에도적용 ( 예 ) 좌표값 (83, 10) 에서거리 8 이내에존재하는모든도시를검색하라 대전 (35, 40) 의 SE 를검색하고 진주 (50, 10) 의 NE 와 SE 만검색하면됨 51 점사분트리 ( 삭제 ) u 삭제는매우복잡 삭제할노드를루트로하는서브트리에있는모든노드들이재삽입되어야함 u 이상적인삭제방법 삭제할노드 A를어떤노드 B로대치한후삭제 이때, 노드 B 는노드 A 를루트로하는서브트리의노드들이속해있는사분면에영향을주지않아야한다. 이런 B 가존재않을경우가장근접한것으로대체하고영역에존재하는점데이타들을재삽입 52

27 v R-트리 u R-트리 B-트리를다차원으로확장시킨완전균형트리 점, 선, 면, 도형등다양한다차원공간데이타객체를저장하고검색하기위한다차원인덱스구조 SAM: sptil ccess method R mens rectngle? u 모양이불규칙한공간데이타객체를저장하기위하여객체의최소경계사각형 MBR (Minimum Bounding Rectngle) 을구하여이 MBR 을인덱스엔트리로저장 u MBR 대신 MBB (Minimum Bounding Box) 로표현하기도함 53 MBR u MBR 에는 1. 객체자체를나타내는객체 MBR 2. 몇개의객체 MBR 그룹을나타내는리프노드 MBR 3. 몇개의 MBR 그룹을나타내는중간노드 MBR u MBR 은 (x1 min, y1 min ), (x1 mx, y1 mx ) 와같이두개의 2차원점데이타로표현할수있기때문에저장관리가용이. u 객체검색시에는검색대상이되는객체 MBR 이해당영역에속하는지를먼저비교하여탐색공간을빠르게축소시킬수있음. 54

28 MBR 예 불규칙데이타 (x1 mx, y1 mx ) (x2 mx, y2 mx ) (x1 min, y1 min ) (x2 min, y2 min ) MBR 예 55 R-트리의개념 u B-트리를다차원구조로확장 u u u u 디스크페이지단위로데이타를저장, 검색할수있어서대용량데이타에대한인덱스구조로적당인덱스구조는 B-트리와같이높이균형트리 (height blnced tree) 리프노드의엔트리는객체 MBR 과이객체가저장된주소 ( 포인터 ) 로구성중간노드의엔트리는자식노드의모든 MBR 을포함하는보다큰 MBR 과자식노드에대한포인터로구성 56

29 R-트리의특성 u 특성 M: 한노드가저장할수있는최대엔트리수 m(<=m/2): 한노드가저장해야되는최소엔트리수 1. 루트노드가아닌노드는최소 m, 최대 M개의인덱스엔트리와자식포인터를포함한다. 2. 루트노드는리프가아닌이상최소 2개의자식노드를갖는다. 3. 모든리프노드는최소 m, 최대 M개의인덱스엔트리를포함한다 4. 리프노드에있는각인덱스엔트리는객체데이타를실제공간적으로포함하고있는 MBR과이공간객체가저장된페이지주소를포함한다. 5. 완전균형트리이다. 즉모든리프노드는같은레벨에있다. 57 R-트리의특성 u 점데이타를주로처리하는 k-d-b 트리는데이타자체를분할하는것이아니라영역을분할하기때문에중간노드들의영역이중첩될수없음 u u R- 트리는데이타객체들을분할하고이들을포함 (cover) 하는영역을 MBR 로표현하는것이기때문에 MBR 이서로겹칠수있고또전체영역중에는어떤 MBR 에도포함되지않는영역이있을수있다. 따라서 R- 트리는중간노드들이표현하는 MBR 이중첩될수있기때문에임의의크기의객체를분할저장하기가쉽다. 58

30 데이타예 y r1 r13 r12 r2 r14 r6 r10 r5 r4 r9 r11 r8 r7 2 차원공간데이타객체 r3 x 59 시각적 MBR 예 R1 r1 R3 R2 r13 r12 R5 r2 r14 r6 r10 R4 r5 r4 R6 r9 r11 r8 r7 r3 R7 M=3, m=2 60

31 R-트리구성 u 공간데이타객체를 M=3, m=2 인시각적 MBR 로표현 실선으로표시된사각형 r1, r2,,r14는실제데이타에대한데이타객체 MBR을표현. 가는점선으로표시된사각형 R3, R4, R5, R6, R7은각리프노드들이포함하는데이타 MBR 그룹에대한 MBR을표현. 굵은점선으로표시된사각형 R1과 R2는각각자식노드엔트리들이나타내는 MBR 그룹에대한중간노드 MBR을표현. 61 R-트리구성예 R- 트리표현 R1 R2 b R3 R4 c R5 R6 R7 d e f g h r1 r13 r14 r4 r6 r2 r10 r12 r5 r7 r8 r3 r9 r11 62

32 R-트리표현예 u 루트노드 에는자식노드 b와 c가나타내는영역에대한 MBR R1 과 R2, 그리고이들에대한포인터가저장 R-트리노드는디스크페이지로저장되므로포인터는디스크페이지번호가됨 u 중간노드에는그자식노드가나타내는하위 MBR 과그노드에대한포인터가저장 u R-트리노드구조 리프노드구조 : ((oid, mbr),,) oid는데이타베이스에서객체참조를위한객체식별자이고 mbr은데이타객체의 MBR이다. 중간노드구조 : ((p, mbr),,) p는트리의하위노드에대한포인터이고 mbr은그하위노드에있는엔트리들이나타내는 MBR들을모두포함하는 MBR이다. 63 R-트리의연산 u 검색 영역검색질의 k-nn 질의 u 삽입 u 삭제 64

33 영역검색연산 u 주어진영역에포함된객체의검색 1. 질의영역을트리의루트노드에서부터하위노드들의 MBR 과비교하여중첩 (overlp) 되는 MBR 을비교해가며리프노드까지탐색 2. 리프노드에서는모든객체 MBR 을비교하여최종목표객체를출력 65 영역검색알고리즘 Serch(Node node, Region S) { if (node.level > 0) { // 리프노드가아닌경우 for (i=0; i<node.numofentry; i++) { if (IsOverlp(node.entry[i].MBR, S)) { Serch(node.entry[i].child, S); // 하위노드검사 } } }else { // 리프노드인경우 for (i=0; i<node.numofentry; i++) { if (IsOverlp(node.entry[i].MBR, S)) { PrintResult(node.entry[i].child); // 결과발견 } } } } 66

34 영역검색예 1 R1 영역검색질의 : Q1 영역과중첩되는모든객체를검색하라 영역 R1 에만포함 r1 R3 r13 Q1 r12 R5 r2 R2 r14 r6 r10 R4 r5 r4 R6 r9 r11 r8 r7 r3 R7 67 영역검색예 1 R1 R2 b c R3 R4 R5 R6 R7 d e f g h r1 r13 r14 r4 r6 r2 r10 r12 r5 r7 r8 r3 r9 r11 r13 을최종결과로출력 68

35 영역검색예 2 R1 r1 영역검색질의 : Q2 영역과중첩되는객체를검색하라 R3 영역 R1 과 R2 에중첩 R2 r13 r12 R5 r2 r14 r6 Q2 r10 R4 r5 r4 R6 r9 r11 r8 r7 r3 R7 69 영역검색예 2 영역검색질의 : Q2 영역과중첩되는객체를검색하라 영역 R1 과 R2 에중첩 R1 R2 b c R3 R4 R5 R6 R7 d e f g h r1 r13 r14 r4 r6 r2 r10 r12 r5 r7 r8 r3 r9 r11 r4 만최종결과로출력 70

36 k-nn(k-nerestnerest Neighbor) 질의 u 질의점으로부터가장가까운 k개의객체를검색하는질의 u 3-NN 질의예 점 Q1에서부터가장가까운 3 개의객체를검색하라 R1 r1 R3 R2 r13 Q1 r12 R5 r2 r14 r6 r10 R4 r5 r4 R6 r9 r11 r8 r7 r3 R7 71 k-nn 질의실행방법 u 우선순위큐 (priority queue) 를이용 우선순위큐는엔트리가우선순위순으로정렬되도록구현 큐엔트리는 <p, d>, 즉트리노드의포인터 p와질의점과노드의거리 d로구성 우선순위는질의점과노드의거리 d가가까운것이우선순위가높음. 초기에루트노드를삽입 우선순위큐로부터원소를삭제하여객체가아닌 MBR인경우에는이 MBR에포함된엔트리를모두삽입한다. 삭제한원소가객체인경우에는결과로포함시킨다. 결과에 k 개의객체가포함될때까지반복한다. u k-nnserch(root-node,, point, k) 알고리즘 72

37 k-nn 질의수행예 우선순위큐 ( 우선순위로정렬 ) 질의결과 () (b) Root R1 R2 (c) (d) R2 R4 R3 R4 R5 R6 R3 R7 (e) r6 R5 r4 R6 R3 R7 (f) R5 r4 R6 R3 R7 r6 (g) r12 r4 R6 r10 R3 R7 r2 r6 (h) r4 R6 r10 R3 R7 r2 r6 r12 (i) R6 r10 R3 R7 r2 r6 r12 r4 73 k-nn 질의알고리즘 knnserch(node Root, Point P, int k) { NumResult = 0; PQ.cler(); // 우선순위큐초기화 distnce = CculteDistnce(Root, P); PQ.insert(distnce, Root, NODE_TYPE); // 우선순위큐에루트삽입 while (NumResult<k, &&!PQ.isEmpty()) { node = PQ.delete(); if (IsNodeType(p)) { // 노드일경우하위엔트리를우선순위큐에모두추가 for (i=0; i<node.numberofentry(); i++) { distnce = CculteDistnce(node.entry[i], P); if (node.level==0) { // 리프노드의엔트리는데이타객체 PQ.insert(distnce, node.entry[i], OBJECT_TYPE); }else PQ.insert(distnce, node.entry[i], NODE_TYPE); } } }else { // 결과발견 PrintResult(node); NumResult ++; } } } 74

38 R-트리에서의삽입 u 데이타객체를삽입해야될리프노드를찾은뒤여유공간이있으면바로삽입. u 만일최대엔트리수 M 개의엔트리가저장되어이미만원이면이노드를분할하고엔트리들도분할저장. u 분할된노드에대한인덱스엔트리를부모노드에삽입. u 부모노드가새로운엔트리를수용할공간이없으면다시분할하고분할된노드에대한인덱스엔트리를부모노드에저장. 75 삽입알고리즘 리프노드선택 데이타를삽입할적절한리프노드선택. chooselef() 알고리즘을사용 리프노드에데이타저장 선택된리프노드에빈공간이있으면새로운엔트리 E 를저장. 빈공간이없는경우노드를분할하여 E 를저장하고트리를조정 트리재조정 데이타가삽입된경로를따라새로운데이타삽입으로변경된 MBR 들을조정. 노드가분할된경우에는새로운 MBR 을결정하고그부모노드들을따라가며분할된노드에대한엔트리를삽입. 이때중간노드에자유공간이없으면다시분할이계속될수있음 트리높이증가 만일루트노드가분할되어야하면루트노드를분할하고분할된두노드에대한엔트리를새로운루트노드를만들어저장. 이경우트리의높이가 1 증가한다. 76

39 삽입알고리즘 - 리프노드선택 u chooselef() 알고리즘 1 루트노드 T를 N으로설정 2 N이리프노드이면 N을반환 3 N이리프노드가아니면 N의엔트리가운데 E가삽입되었을때 MBR의크기가최소로증가하는엔트리를 F로선택. 만일증가하는크기가같으면 MBR의크기가작은엔트리를 F로선택 ( 면적최소 ) 4 선택된엔트리 F가가리키는노드를 N으로하여알고리즘 2부터반복수행 u MBR 이크면질의영역과중첩되는 MBR 이많아질수있으므로검사시간이많이걸린다. u MBR 이작으면질의영역과중첩되는 MBR 이적게될수있으므로검사시간이적게걸린다 u 데이타삽입은리프노드선택이나노드분할방법에따라 R-트리의성능에영향을준다. 77 삽입으로인한노드분할방법 u 분할된두노드 MBR 의합이최소가되도록분할 à 검색시불필요한노드탐색을줄여질의성능을높일수있음 u 4개의데이타객체 () 를 2개의노드에 2개씩분할저장하는방법예 r1 r4 r1 r4 r1 r4 r1 r4 r2 r3 r2 r3 r2 r3 r2 r3 () (b) {r1,r2},{r3,r4} (c) {r1,r3},{r2,r4} (d) {r1,r4},{r2,r3} 78

40 R-트리에서의삽입예 r15 를삽입하는경우 R1 r1 R3 R2 r13 r12 R5 r2 r14 r6 r10 r15 R4 r5 r4 R6 r9 r11 r8 r7 r3 R7 79 삽입전 R-트리 R1 R2 b R3 R4 c R5 R6 R7 d e f g h r1 r13 r14 r4 r6 r2 r10 r12 r5 r7 r8 r3 r9 r11 80

41 R-트리의데이타 ( 객체 r15) 삽입예 1 리프노드선택 : 객체 r15 MBR 을 R7 MBR 에삽입할때 MBR 의크기가가장작게증가되므로리프노드 h 를선택. 2 리프노드 h에데이타저장 : 노드 h 는만원이되어 MBR R8 과 R9 로분할하여노드 h 와 i 로저장. 객체 r15 는노드 i 에저장 3 트리재조정 : 부모노드에저장되어있는노드 h 의 MBR R7 을새로운 MBR R8 로변경하고새로분할된노드 i 에대한엔트리를추가. 노드 c 역시여유공간이없으므로다시 R5 와 R6 을포함하는노드 c 와 R8 과 R9 를포함하는노드 j 로분할. 다시트리를재조정하면결국마지막으로분할된노드 c 의부모인루트노드 에노드 c 의 MBR 을 R10 으로변경하고, 빈공간에노드 j 의 MBR 인 R11 을삽입하면트리의조정이모두끝나게된다. 81 객체 r15 삽입결과 R1 r1 R3 R10 r13 r12 R5 r2 R11 r14 r6 r10 r15 R4 r5 r4 R6 r9 r11 r8 r7 r3 R8 R9 82

42 객체 r15 삽입결과 R1 R10R11 b R3 R4 R5 R6 c R8 R9 j d e f g r1 r13 r14 r4 r6 r2 r10 r12 r5 r7 r8 h r3 r9 r11 r15 i 83 R-트리에서의데이타삭제 1 리프노드탐색 : 삭제할데이타객체를포함하고있는리프노드를탐색. 2 해당데이타삭제 : 리프노드에서해당데이타객체를삭제. 3 언더플로처리 : 리프노드의엔트리수가 m보다작게되면언더플로가발생하게된다. 언더플로가발생한노드를삭제하고그노드의모든엔트리들을트리에다시삽입 삭제로인한언더플로는트리의루트방향으로파급될수있음. m 개이하의엔트리를갖는중간노드역시노드를삭제하고트리에다시삽입. 중간노드를재삽입할경우이노드는원래의레벨에삽입되어야함. 이때 MBR 이변하게될경우트리의루트까지경로를따라 MBR 을조정. 트리가모두조정된뒤에트리의루트가단지하나의자식만을갖게될경우루트의자식노드를새로운루트노드로만들고기존의루트노드를삭제. 이경우트리의높이가 1 낮아짐. 84

43 R-트리의분석 u k 차원의데이타를처리하기위한 B-트리의확장으로서중간노드와리프노드로구성된높이균형트리 리프노드 : 공간데이타에대한인덱스엔트리를저장 중간노드 : 하위노드의엔트리들이표현하는 MBR 들을완전히포함하는상위 MBR 엔트리들을저장 u 탐색연산 : 포함과중첩관계가중요 포함 (coverge) 과중첩 (overlp) 관계가최소일때가장효율적임 최소포함은죽은공간 (ded spce) 즉, 빈공간의양을감소시킴 중첩 : 높이 h, 레벨 h-i 에서 k 개의노드가중첩되면, 최악은리프노드에대해 k 개의경로를접근해야됨. 따라서 i 에서 ik 페이지접근이필요. u N개의인덱스를갖는 R-트리의높이는최대 élog m N ù -1 왜냐하면각노드의분기율이적어도 m이되기때문 u 루트를제외한모든노드에서최악의공간활용도 (spce utiliztion) 는 m/m 트리의높이를감소시키면공간활용도는증가 85 R-트리의변형트리 u 성능향상이나다양한응용지원을위한여러가지 R-트리의변형트리들이있음 u 대표적 R-트리변형트리 R + - 트리 R- 트리에서노드간의중첩영역을없앰 k-d-b 트리의특징을접목 R * - 트리 R- 트리의삽입, 삭제알고리즘을개선 86

44 R + -트리 u 여러 MBR 과중첩되는데이타는여러노드에중복저장 à데이타가분할되게 MBR을설정할수있음 à중간노드 MBR들은중첩이필요없음 à데이타를저장할때는데이타일부가아니라데이타객체전체를저장 u R-트리와의차이점 1 R + -트리의노드는적어도 1/2이상의엔트리가채워진다는것을보장을하지않음. 2 R + -트리의중간노드들의 MBR은중첩되지않음. 3 R + -트리의데이타객체는분할될수있으나이경우그데이타객체전체가둘이상의리프노드에중복저장될수있음. 87 R + -트리의예 R1 r1 R3 R2 r13 r12 R7 r2 r14 R4 r6 r5 r4 R6 r10 r9 r11 R5 r8 r7 r3 R8 데이타객체 r4 와 r11 이분할되게 MBR 설정 88

45 R + -트리의예 데이타 r4, r11 이 MBR 설정시분할된경우 R1 R2 b R3 R4 R5 c R6 R7 R8 d e f g h i r1 r13 r4 r6 r14 r4 r5 r8 r4 r7 r12 r2 r10 r11 r3 r9 r11 중복저장 89 R + -트리의검색예 R1 점 Q1 을포함하고있는객체를검색하라 r1 R3 R2 r13 r12 R7 r2 r14 R4 Q1 r6 r5 R5 r8 r4 r7 R6 r10 r3 r9 R8 r11 90

46 R + -트리의검색예 점 Q1 을포함하고있는객체를검색하라 R1 R2 b R3 R4 R5 c R6 R7 R8 d e f g h i r1 r13 r4 r6 r14 r4 r5 r8 r4 r7 r12 r2 r10 r11 r3 r9 r11 3 개의노드방문 91 R + -트리의삽입, 삭제연산 u 일반적으로 R-트리보다복잡 하나의데이타객체가여러리프노드에중복될수있기때문 u 데이타삽입 데이타객체를삽입해야될모든리프노드를찾음. 삽입하는데이타객체의 MBR 이중간노드의 MBR 과중첩되면중첩되는 MBR 을통하는경로로도달하는모든리프노드에중복저장. 삽입하는데이타객체의 MBR 이기존의중간노드 MBR 에포함되지않으면기존 MBR 을조정. 리프노드에삽입할때만원이면노드를분할. u 데이타삭제 해당객체가하나이상의리프노드에저장될수있으므로해당하는모든리프노드에서해당객체를삭제해야함. 삭제가많이발생한뒤에는공간활용도가매우나빠질수있음. 이런경우에는성능을고려하여주기적으로서브트리들을재구성해야함. 92

47 R + -트리의장단점 u 장점 MBR이중첩될때의문제점을해결 불필요한노드탐색을줄임 u 단점 R + -트리의경우노드의분할이상위노드뿐만아니라다시하위노드로파급될수있음. 즉중간노드의분할은하위노드전체를분할하게될수도있음. à 노드의공간활용도가나빠짐 리프노드에중복되어저장되는데이타의수는데이타의분포나데이타개수의영향을받으므로데이타의분포나데이타의개수에따라 R + - 트리의성능이저하될수있음. 93 R * -트리 u 기본적인구조와연산은 R-트리와동일 u 삽입, 삭제시부모노드의 MBR 이효율적으로확장될수있도록알고리즘을개선 u R-트리질의처리성능향상을위한고려사항 1 MBR 의면적 (covered re) 을최소화 2 MBR 간의중첩영역 (overlp) 을최소화 3 둘레길이 (mrgin) 최소화 : 정사각형에가까운모양의 MBR 이좋음 4 저장공간이용률 (storge utiliztion) 의최적화 : 트리의노드수를줄이고, 트리의높이를낮게유지함 94

48 R * -트리의개선사항 u chooselef() 알고리즘개선 중간노드선택시에는최소면적이최소인 MBR을우선 리프노드선택시에는중첩영역의증가가최소가되는 MBR을우선 u 노드분할알고리즘변경 : 2 단계 heuristic 을사용 분할축 (split xis) 선택 : 분할된두 MBR의둘레길이합이최소가되게하는축 분할인덱스 (split index) 선택 : 엔트리들을분할할때중첩영역증가최소화 ( 같을경우면적합이최소화 ) 95 R * -트리의개선사항 u 노드분할전에강제재삽입전략 오버플로발생시노드의 M+1개의데이타중트리의중심에서멀리떨어진 p개 ( 보통 30%) 를강제로트리에재삽입 이점 1 중첩영역이감소 2 분할비용이감소 3 MBR 모양이정사각형에근사 u R * -트리의장점 R-트리의기본구조나연산을그대로유지하고있으므로구현이비교적간단 삽입, 삭제알고리즘개선으로질의성능이우수 96

제 11 장 다원 탐색 트리

제 11 장 다원 탐색 트리 제 11 장 다원탐색트리 Copyright 07 DBLB, Seoul National University m- 원탐색트리의정의와성질 (1) 탐색성능을향상시키려면메모리접근횟수를줄여야함 탐색트리의높이를줄여야함 차수 (degree) 가 2보다큰탐색트리가필요 m- 원탐색트리 (m-way search tree) 공백이거나다음성질을만족 (1) 루트는최대 m 개의서브트리를가진다.

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

슬라이드 1

슬라이드 1 CHAP 7: 트리 C 로쉽게풀어쓴자료구조 생능출판사 2005 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 대표이사 응용분야 : 계층적인조직표현 총무부 영업부 생산부 파일시스템 인공지능에서의결정트리 전산팀구매팀경리팀생산 1 팀생산 2 팀 트리의용어 노드 (node): 트리의구성요소 루트 (root): 부모가없는노드

More information

chap 5: Trees

chap 5: Trees Chapter 5. TREES 목차 1. Introduction 2. 이진트리 (Binary Trees) 3. 이진트리의순회 (Binary Tree Traversals) 4. 이진트리의추가연산 5. 스레드이진트리 (Threaded Binary Trees) 6. 히프 (Heaps) 7. 이진탐색트리 (Binary Search Trees) 8. 선택트리 (Selection

More information

Microsoft PowerPoint - 6장 탐색.pptx

Microsoft PowerPoint - 6장 탐색.pptx 01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리, 그래프등 탐색키데이터 순차탐색 (sequential

More information

7장인덱스된 순차화일 DBLAB, SNU v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬

7장인덱스된 순차화일 DBLAB, SNU v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬 7장인덱스된 순차화일 v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬 레코드전체에대한순차접근을지원 u 인덱스화일 화일의레코드들에대한키값과포인터를저장 개별레코드에대한직접접근을지원 u

More information

1장. 리스트

1장. 리스트 01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리, 그래프등 탐색키데이터 순차탐색 (sequential

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2

정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2 13. 탐색트리 AVL 트리, B- 트리, 2-3-4 트리 정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2 이진탐색트리의예 3 BST 의최선과최악의경우

More information

7장

7장 CHAP 7: 트리 C 로쉽게풀어쓴자료구조 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현파일시스템인공지능에서의결정트리 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산 1 팀생산 2 팀 * 예제 : 책그림 7-2, 7-3, 7-4 트리의용어 노드 (node): 트리의구성요소 루트

More information

08장.트리

08장.트리 ---------------- T STRUTURES USING ---------------- HPTER 트리 /29 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모-자식관계의노드들로이루어짐 응용분야 : 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀 생산 팀 생산 2 팀 (a) 회사의조직도 내문서 동영상음악사진 영화예능드라마 여행 (b) 컴퓨터의폴더구조

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

슬라이드 1

슬라이드 1 6-1 리스트 (list) 란순서를가진항목들을표현하는자료구조 리스트를구현하는두가지방법 배열 (array) 을이용하는방법 구현간단 삽입, 삭제시오버헤드 항목의개수제한 연결리스트 (linked list) 를이용하는방법 구현복잡 삽입, 삭제가효율적 크기가제한되지않음 6-2 객체 : n 개의 element 형으로구성된순서있는모임 연산 : add_last(list,

More information

Microsoft PowerPoint - 제8장-트리.pptx

Microsoft PowerPoint - 제8장-트리.pptx 제 8 강의. 트리 (Tree) 자료구조 1. 트리의개념 2. 이진트리 3. 이진트리의저장 1 트리자료구조필요성연결리스트의삽입삭제시데이터를이동하지않는장점을살리자. 연결리스트의검색시노드의처음부터찾아가야하는단점을보완하자. 데이터를중간부터찾아가는이진검색의장점을이용하자. 연결리스트의포인터를리스트의중간에두는방법? ptr 10 23 34 42 56 검색을중간부터시작하여좌우중하나로분기,

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

Microsoft PowerPoint - lec07_tree [호환 모드]

Microsoft PowerPoint - lec07_tree [호환 모드] Tree 2008학년도 2학기 kkman@sangji.ac.krac kr -1- 트리 (Tree) 1. 개요 ~ 계층적인구조를나타내는비선형 (Non-linear) 자료구조 ~ 트리는부모 - 자식관계의노드로구성 ~ 응용분야 계층적인조직표현 파일시스템 인공지능에서의결정트리 -2- 트리자료구조를사용하는이유? ~ 다른자료구조와달리비선형구조. ~ 정렬된배열 탐색은빠르지만

More information

Ch.1 Introduction

Ch.1 Introduction Tree & Heap SANGJI University Kwangman Ko (kkman@sangji.ac.kr) 트리개요 트리 (Tree) ~ 계층적인구조를나타내는비선형 (Non-linear) 자료구조 ~ 트리는부모-자식관계의노드로구성 ~ 응용분야 계층적인조직표현 파일시스템 인공지능에서의결정트리 kkman@sangji.ac.kr 2 트리자료구조를사용하는이유?

More information

05_tree

05_tree Tree Data Structures and Algorithms 목차 트리의개요 이진트리의구현 이진트리의순회 (Traversal) 수식트리 (Expression Tree) 의구현 Data Structures and Algorithms 2 트리의개요 Data Structures and Algorithms 3 트리의접근과이해 트리는계층적관계 (Hierarchical

More information

쉽게배우는알고리즘 5 장. 검색트리 IT COOKBOOK 5 장. 검색트리 나는보다응용력있는유형의수학이라는이유때문에컴퓨터과학을하고싶었다. - 로버트타잔 한빛미디어 1

쉽게배우는알고리즘 5 장. 검색트리   IT COOKBOOK 5 장. 검색트리 나는보다응용력있는유형의수학이라는이유때문에컴퓨터과학을하고싶었다. - 로버트타잔 한빛미디어 1 쉽게배우는알고리즘 5 장. 검색트리 htt://academy.hanb.co.k 5 장. 검색트리 나는보다응용력있는유형의수학이라는이유때문에컴퓨터과학을하고싶었다. - 로버트타잔 - 2 - 한빛미디어 1 학습목표 검색에서레코드와키의역할을구분한다. 이진검색트리에서의검색 삽입 삭제작업의원리를이해한다. 이진검색트리의균형이작업의효율성에미치는영향을이해하고, 레드블랙트리의삽입

More information

Microsoft PowerPoint - chap10_tree

Microsoft PowerPoint - chap10_tree Chap. 10 : Tree 2007 학년도 2 학기 1. 개요 재귀 (recursion) 의정의, 순환 ~ 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 ~ 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 ~ 정의자체가순환적으로되어있는경우에적합한방법 ~ 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색 -2-

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

입학사정관제도

입학사정관제도 자료구조 강의노트 교재 : C 로배우는쉬운자료구조 ( 개정판 ) 출판사 : 한빛미디어 (2011 년 3 월발행 ) 저자 : 이지영 소프트웨어학과원성현교수 1 8 장트리 소프트웨어학과원성현교수 93 1. 트리 트리개요 트리 (tree) 란? 리스트, 스택, 큐등은선형자료구조 (linear data structure) 인것에반해서트리는계층 (hierarchy)

More information

v 이원탐색트리 (binary search tree) u 인덱스를조직하는한가지방법 u 이진트리 (binary tree) 유한한수의노드를가진트리 공백 (empty) 이거나루트와두개의분리된이진트리즉, 왼쪽서브트리 (left subtree) 와오른쪽서브트리 (right su

v 이원탐색트리 (binary search tree) u 인덱스를조직하는한가지방법 u 이진트리 (binary tree) 유한한수의노드를가진트리 공백 (empty) 이거나루트와두개의분리된이진트리즉, 왼쪽서브트리 (left subtree) 와오른쪽서브트리 (right su 6장인덱스구조 v 인덱스 (index) u 특징 화일의레코드들에대한효율적접근을위한조직 < 키값, 레코드주소 ( 포인터 )> 쌍으로구성 u 종류 키값의유형에따른인덱스 기본인덱스 (primary index) : 키값이기본키인인덱스 보조인덱스 (secondary index) : 기본인덱스이외의인덱스 화일조직에따른인덱스 집중인덱스 (clustered index) :

More information

슬라이드 1

슬라이드 1 CHAP 7: 트리 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 리스트, 스택, 큐등은선형구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현 컴퓨터디스크의디렉토리구조 인공지능에서의결정트리 (decision tree) 회사의조직 파일디렉토리구조 결정트리 ( 예 ) 골프에대한결정트리 트리의용어 노드 (node): 트리의구성요소

More information

1장. 리스트

1장. 리스트 01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 05. AVL 트리 06. B- 트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리,

More information

슬라이드 1

슬라이드 1 컬렉션프레임워크 (Collection Framework) 의정의 - 다수의데이터를쉽게처리할수있는표준화된방법을제공하는클래스들 - 데이터의집합을다루고표현하기위한단일화된구조 (architecture) - JDK 1.2 이전까지는 Vector, Hashtable, Properties와같은컬렉션클래스로서로다른각자의방식으로처리 - 컬렉션프레임워크는다수의데이터를다루는데필요한다양하고풍부한클래스들을제공하므로프로그래머의부담을상당부분덜어준다.

More information

o 경로 (path) 트리에서사용하는용어 ~ 어떤한노드에서다른노드까지링크를통해이동했을때, 거쳐온노드들의집합. o 루트 (root) ~ 트리의가장상위에있는노드로루트는항상하나만존재 o 부모, 자식 (parent, children) ~ 링크로연결된노드중위에있는노드를부모노드,

o 경로 (path) 트리에서사용하는용어 ~ 어떤한노드에서다른노드까지링크를통해이동했을때, 거쳐온노드들의집합. o 루트 (root) ~ 트리의가장상위에있는노드로루트는항상하나만존재 o 부모, 자식 (parent, children) ~ 링크로연결된노드중위에있는노드를부모노드, Tree & Heap SANGJI University Kwangman Ko kkman@sangji.ac.kr - 1 - o 트리 (Tree) 1. 개요 ~ 계층적인구조를나타내는비선형 (Non-linear) 자료구조 ~ 트리는부모 - 자식관계의노드로구성 ~ 응용분야 계층적인조직표현 파일시스템 인공지능에서의결정트리 - 2 - o 트리자료구조를사용하는이유? ~ 다른자료구조와달리비선형구조.

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E > 제 7 강의. 고급연결리스트 1. 원형연결리스트 2. 이중연결리스트 3. 연결리스트알고리즘 1 1. 원형연결리스트 (Circularly Linked Lists) 원형연결리스트란? 연결리스트의맨끝노드를첫번째노드와연결시켜서원형으로만든리스트 단순연결리스트 (Singly Linked List) 불편한점 - 연결리스트의노드포인터를알고있을때첫번째노드는바로찾아갈수있지만마지막노드는리스트전체를따라가면서끝을찾아가야한다

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

Algorithms

Algorithms 자료구조 & 알고리즘 리스트 (List) Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 선형리스트 연결리스트 2 선형리스트 선형리스트 선형리스트의개념 선형리스트의구현 연결리스트 3 선형리스트개념 리스트 (List) 목록, 대부분의목록은도표 (Table) 형태로표시 추상자료형리스트는이러한목록또는도표를추상화한것

More information

슬라이드 1

슬라이드 1 Data Structure Chapter 7. 트리 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 트리의개념 트리 (Tree) 트리 : 계층적인구조를나타내는자료구조 리스트, 스택, 큐등은선형구조 정의 (1) 하나의루트 (root) 노드 (2) 다수의서브트리 (subtree) 트리는부모-자식관계의노드들로이루어짐

More information

슬라이드 1

슬라이드 1 Data Structure Chapter 8. 우선순위큐 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 우선순위큐추상데이터타입 우선순위큐 우선순위큐 (priority queue) 정의 : 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게됨 스택이나 FIFO 큐를우선순위큐로구현할수있음

More information

제 1 장 기본 개념

제 1 장 기본 개념 이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder)

More information

슬라이드 1

슬라이드 1 CHAP 7: 트리 yicho@gachon.ac.kr 1 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 리스트, 스택, 큐등은선형구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현 컴퓨터디스크의디렉토리구조 인공지능에서의결정트리 (decision tree) 2 2 회사의조직 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산

More information

C 언어 강의노트

C 언어 강의노트 C언어 (CSE2035) (15-1 Lists) Linear list 의구성, Insertion, deletion 윤용운, Ph.D. Dept. of Computer Science and Engineering Sogang University Seoul, Korea Tel: 010-3204-6811 Email : yuyoon0@sogang.ac.kr 2018-01-11

More information

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table 쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table http://academy.hanb.co.kr 6장. 해시테이블 테이블 Hash Table 사실을많이아는것보다는이론적틀이중요하고, 기억력보다는생각하는법이더중요하다. - 제임스왓슨 - 2 - 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

More information

06장.리스트

06장.리스트 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 리스트 1/28 리스트란? 리스트 (list), 선형리스트 (linear list) 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : ( ㄱ, ㄴ,, ㅎ ) 카드 :

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

Chapter 08. 트리(Tree)

Chapter 08. 트리(Tree) 윤성우의열혈자료구조 : C 언어를이용한자료구조학습서 Chapter 08. 트리 (Tree) Introduction To Data Structures Using C Chapter 08. 트리 (Tree) Chapter 08-1: 트리의개요 트리의접근과이해 트리는계층적관계 (Hierarchical Relationship) 를표현하는자료구조이다. 트리의예 트리의예

More information

<4D F736F F F696E74202D FBFACB0E120C0DAB7E1B1B8C1B6205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FBFACB0E120C0DAB7E1B1B8C1B6205BC8A3C8AF20B8F0B5E55D> 연결자료구조 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents 학습목표 연결자료구조를이해한다. 순차자료구조와연결자료구조의차이와장단점을알아본다. 연결리스트의종류와특징을알아본다. 연결자료구조를이용한다항식의덧셈연산방법을알아본다. 내용 배열연결자료구조를이해한다. 순차자료구조와연결자료구조의차이와장단점을알아본다. 연결리스트의종류와특징을알아본다.

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

슬라이드 1

슬라이드 1 CHAP 8: 우선순위큐 yicho@gachon.ac.kr 1 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 13 장. 균형탐색트리 균형탐색트리 트리의작업효율을높이기위한다양한균형트리알고리즘을비교 학습목표 트리의균형이효율에미치는영향을이해한다. AVL 트리에서균형을회복하기위한방법을이해한다. 스플레이기법을이해한다. 2-3 트리에서균형을회복하기위한방법을이해한다. 2-3-4 트리와레드블랙트리의관계를이해한다. 1 균형 균형 2 AVL G. M. Adelson-Velskii and

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

Microsoft PowerPoint - 자료구조2008Chap07

Microsoft PowerPoint - 자료구조2008Chap07 제 7 장트리 7.1 트리의정의 1 Tree 비선형구조, 다차원적구조 원소마다다음에여러개의원소가존재 하나이상의노드로구성된유한집합 정의1 : 루트 (root) 라는특별한노드를가지는사이클이존재치않는그래프 (acyclic graph) 정의 2 : 하나이상의노드로구성된유한집합 루트 (root) 라는특별한노드존재 나머지노드들은다시각각의트리이면서교차하지않는분리집합 (disjoint

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 03 모델변환과시점변환 01 기하변환 02 계층구조 Modeling 03 Camera 시점변환 기하변환 (Geometric Transformation) 1. 이동 (Translation) 2. 회전 (Rotation) 3. 크기조절 (Scale) 4. 전단 (Shear) 5. 복합변환 6. 반사변환 7. 구조변형변환 2 기하변환 (Geometric Transformation)

More information

03_queue

03_queue Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,

More information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

q 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2

q 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2 연결자료구조표현방식 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2 q 연결자료구조 v 순차자료구조의문제점 삽입연산이나삭제연산후에연속적인물리주소를유지하기위해서원소들을이동시키는추가적인작업과시간소요 Ø 원소들의이동작업으로인한오버헤드는원소의개수가많고삽입

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 균형탐색트리 13 장. 균형탐색트리 트리의작업효율을높이기위한다양한균형트리알고리즘을비교 학습목표 트리의균형이효율에미치는영향을이해한다. AVL 트리에서균형을회복하기위한방법을이해한다. 스플레이기법을이해한다. 2-3 트리에서균형을회복하기위한방법을이해한다. 2-3-4 트리와레드블랙트리의관계를이해한다. 1 Section 01 AVL 트리 - 균형 균형 2 AVL G.

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

슬라이드 1

슬라이드 1 CHP 6: 큐 C 로쉽게풀어쓴자료구조 생능출판사 2005 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 큐 DT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

8장직접화일 DBLAB, SNU v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이

8장직접화일 DBLAB, SNU v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이 8장직접화일 v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이가능 순차접근화일 u 직접화일의종류 인덱스된화일 (indexed file) 인덱스를이용해레코드를접근 인덱스된순차화일

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

11. 텍스트를위한 화일 DBLAB, SNU 텍스트를위한화일 u 텍스트데이타로구성된문서 (documents) 나텍스트필드 (text field) 를포함하고있는레코드검색에이용할수있는화일 텍스트 (text): 긴문자열로구성된데이타 ( 예 ) 학생의자기소개, 신문기사, 사전

11. 텍스트를위한 화일 DBLAB, SNU 텍스트를위한화일 u 텍스트데이타로구성된문서 (documents) 나텍스트필드 (text field) 를포함하고있는레코드검색에이용할수있는화일 텍스트 (text): 긴문자열로구성된데이타 ( 예 ) 학생의자기소개, 신문기사, 사전 . 텍스트를위한 화일 텍스트를위한화일 텍스트데이타로구성된문서 (docments) 나텍스트필드 (text field) 를포함하고있는레코드검색에이용할수있는화일 텍스트 (text): 긴문자열로구성된데이타 ( 예 ) 학생의자기소개, 신문기사, 사전의용어, 인터넷사이트에대한설명정보 키워드 (keyword): 텍스트데이타에대한탐색키값 하나의레코드를식별하기위하여텍스트필드는여러개의키워드가사용될수있음.

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 3. 트리 3.1 트리의개요 3.2 이진트리 3.3 트리의운행 3.1 트리의개요 트리 : 그래프의일종 데이터 : 노드 순환적정의 T = {R, T 1,T 2, T n } R : 루트 T i : 서브-트리 ( 트리 ) 3.1 트리의개요 1. 노드 2. 근노드 3. 서브트리 4. 차수 5. 단노드 6. 간노드 (nonterminal node) 7. 부-노드,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 10 장. 트리 트리 리스트나스택, 큐가데이터집합을한줄로늘어세운선형자료구조라면트리는두갈래로나누어세운비선형구조이다. 비선형구조를고안한동기는바로이구조가지닌효율성때문이다. 즉, 삽입, 삭제, 검색이라는주작업에대해서선형구조보다나은시간적효율을보일수있다. 학습목표 트리와관련된용어를정확히이해한다. 이진트리의세가지순회방법의차이점을이해한다. 포인터로구현한이진탐색트리의탐색,

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

소성해석

소성해석 3 강유한요소법 3 강목차 3. 미분방정식의근사해법-Ritz법 3. 미분방정식의근사해법 가중오차법 3.3 유한요소법개념 3.4 편미분방정식의유한요소법 . CAD 전처리프로그램 (Preprocessor) DXF, STL 파일 입력데이타 유한요소솔버 (Finite Element Solver) 자연법칙지배방정식유한요소방정식파생변수의계산 질량보존법칙 연속방정식 뉴톤의운동법칙평형방정식대수방정식

More information

Microsoft PowerPoint - chap4_list

Microsoft PowerPoint - chap4_list Chap. 4 : 리스트 (list) 2007 학년도 2 학기 리스트 1. 리스트개념 ~ 고정된길이의자료 ( 원소 ) 들을순차적으로나열해놓은집합을가르키는자료구조의추상적인개념 ~ 순서를가진항목들의모임 집합 (set) : 항목간의순서의개념이없음 리스트의예 ~ 요일 : ( 일요일, 월요일,, 토요일 ) ~ 한글자음의모임 : (ᆨ,ᆫ,,ᄒ) ~ 핸드폰의문자메시지리스트

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 트리 10 장. 트리 리스트나스택, 큐가데이터집합을한줄로늘어세운선형자료구조라면트리는두갈래로나누어세운비선형구조이다. 비선형구조를고안한동기는바로이구조가지닌효율성때문이다. 즉, 삽입, 삭제, 검색이라는주작업에대해서선형구조보다나은시간적효율을보일수있다. 학습목표 트리와관련된용어를정확히이해한다. 이진트리의세가지순회방법의차이점을이해한다. 포인터로구현한이진탐색트리의탐색,

More information

14장.탐색

14장.탐색 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 탐색 1/28 탐색 (search) 이란? 여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열,

More information

Microsoft PowerPoint - 08-Queue.ppt

Microsoft PowerPoint - 08-Queue.ppt Chapter Queue ( 큐 ) Dongwon Jeong djeong@kunsan.ac.kr Department of Informatics & Statistics 학습목표 큐의개념및추상데이터타입에대한이해 큐의구현방법 배열 링크드리스트 덱 / 데크의개념과구현방법 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In

More information

Microsoft PowerPoint - 08-chap06-Queue.ppt

Microsoft PowerPoint - 08-chap06-Queue.ppt / 큐 (QUEUE) Chapter 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 큐 Ticket ox Dongwon Jeong djeong@kunsan.ac.kr Department of Kunsan National University 전단 () 후단 () 학습목표 큐 DT 큐의개념및추상데이터타입에대한이해

More information

1 peaieslvfp3 1. 두점사이의거리 수직선위의두점사이의거리를구할수있다. 좌표평면위의두점사이의거리를구할수있다. 수직선위의두점사이의거리 todrkrgo qhqtlek 오른쪽그림은충무로역을중심으로한서울시지하철 3`호선노선도의일부분이다. 충무로역을` 0, 을지로 3`

1 peaieslvfp3 1. 두점사이의거리 수직선위의두점사이의거리를구할수있다. 좌표평면위의두점사이의거리를구할수있다. 수직선위의두점사이의거리 todrkrgo qhqtlek 오른쪽그림은충무로역을중심으로한서울시지하철 3`호선노선도의일부분이다. 충무로역을` 0, 을지로 3` peaieslvfp. 두점사이의거리 수직선위의두점사이의거리를구할수있다. 좌표평면위의두점사이의거리를구할수있다. 수직선위의두점사이의거리 todrkrgo qhqtlek 오른쪽그림은충무로역을중심으로한서울시지하철 `호선노선도의일부분이다. 충무로역을` 0, 을지로 `가역을 ``로나타낼때, 다음물음에답하여라. 독립문 경복궁 안국종로 가을지로 가충무로동대입구약수금호옥수압구정잠원신사

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

Microsoft PowerPoint Merging and Sorting Files.ppt

Microsoft PowerPoint Merging and Sorting Files.ppt 자료처리 () 006 년봄학기문양세강원대학교컴퓨터과학과 정렬 / 합병의개요 정렬의종류 : 내부정렬, 외부정렬 내부정렬 (internal sorting) 데이타가적어서메인메모리내에모두저장시켜정렬가능할때사용함 레코드의판독 (read) 및기록 (write) 에걸리는시간이문제가되지않음 외부정렬 (external sorting) 데이타가많아서메인메모리의용량을초과하여보조기억장치

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

제 9 장 우선순위 큐

제 9 장 우선순위 큐 제 9 장 우선순위큐 Copyright 007 DBLAB, Seoul National University 한쪽끝과양쪽끝우선순위큐 우선순위큐 (priority queue) - 각원소가연관된우선순위를갖고있는원소들의모임 최소우선순위큐에서의연산 - SP: 최소우선순위를가진원소의반환 - SP: 임의의우선순위를가진원소의삽입 - SP3: 최소우선순위를가진원소의삭제 최대우선순위큐에서의연산

More information

1. 리스트개념 리스트 (list) 고정된길이의자료 ( 원소 ) 들을순차적으로나열해놓은집합을가르키는자료구조의추상적인개념 순서를가진항목들의모임 집합 (set) : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : (ᄀ,ᄂ,,ᄒ

1. 리스트개념 리스트 (list) 고정된길이의자료 ( 원소 ) 들을순차적으로나열해놓은집합을가르키는자료구조의추상적인개념 순서를가진항목들의모임 집합 (set) : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : (ᄀ,ᄂ,,ᄒ Linked List 2010 2 학기 SANGJI University 1. 리스트개념 리스트 (list) 고정된길이의자료 ( 원소 ) 들을순차적으로나열해놓은집합을가르키는자료구조의추상적인개념 순서를가진항목들의모임 집합 (set) : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : (ᄀ,ᄂ,,ᄒ) 핸드폰의문자메시지리스트

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

리스트구현방법 배열 (array) 을이용하는방법 구현이간단 삽입, 삭제동작에따른원소이동. 항목의개수제한, 정적기억공간할당. 메모리낭비, 오버플로우 연결리스트 (linked list) 를이용하는방법 구현이복잡 삽입, 삭제가효율적 크기가제한되지않음 Lecture 03_Li

리스트구현방법 배열 (array) 을이용하는방법 구현이간단 삽입, 삭제동작에따른원소이동. 항목의개수제한, 정적기억공간할당. 메모리낭비, 오버플로우 연결리스트 (linked list) 를이용하는방법 구현이복잡 삽입, 삭제가효율적 크기가제한되지않음 Lecture 03_Li Linked List 2011 2 학기 SANGJI University 리스트 (list) 1. 리스트개념 고정된길이의자료 ( 원소 ) 들을순차적으로나열해놓은집합을가르키는자료구조의추상적인개념 순서를가진항목들의모임 집합 (set) : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : (ᄀ,ᄂ,,ᄒ) 핸드폰의문자메시지리스트

More information

09J1_ _R.hwp

09J1_ _R.hwp 상수삽입전이시간을가지는양단우선순위큐 217 DOI: 10.3745/KIPSTA.2009.16-A.3.217 상수삽입전이시간을가지는양단우선순위큐 정해재 요 약 우선순위큐는스케줄링, 정렬, 유전자검색과같은우선순위에따른검색, 최단거리계산과같은응용에사용될수있다. 본논문에서제안하는배열을이용한양단우선순위큐자료구조는삽입과삭제연산에각각 O(1) 전이시간과 O(logn) 시간이걸린다.

More information

e-비즈니스 전략 수립

e-비즈니스 전략 수립 트리 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents 학습목표 트리의개념을이해한다. 이진트리의자료구조를알아본다. 이진트리에서의순회를이해한다. 이진탐색트리의개념을이해하고연산방법을이해한다. 히프의자료구조를이해한다. 내용 트리 이진트리 이진트리의구현 이진트리의순회 이진탐색트리 히프 2/104 1. 트리 트리 (tree) 원소들간에 1:

More information

Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74

Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74 큐 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74 1. 큐 v 큐 (Queue) 데이터의삽입과삭제가양쪽끝에서일어나는자료구조

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

제 10 장 최적 이원 탐색 트리

제 10 장 최적 이원 탐색 트리 제 1 장 최적이원탐색트리 Copyright 27 DBLAB, Seoul National University 최적이원탐색트리 (1/11) 개요 정적원소들의집합에대한이원탐색트리구조 삽입이나삭제는하지않고탐색만수행 정렬된리스트 함수 Get( 프로그램 5.19 참고 ) 이용 비용측정방법 함수 Get 이용 for 루프를 l 번반복 1 5 15 리스트 (5,1,15)

More information

슬라이드 1

슬라이드 1 CHAP 8: 우선순위큐 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 우선순위큐 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터 응용분야 : 시뮬레이션시스템

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

슬라이드 1

슬라이드 1 CHAP 8: 우선순위큐 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터 응용분야 : 시뮬레이션시스템 ( 여기서의우선순위는대개사건의시각이다.)

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

More information

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ 00. 리스트 자료구조 01. 링크드 리스트 02. 더블 링크드 리스트 03. 환형 링크드 리스트 리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : (

More information