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

Size: px
Start display at page:

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

Transcription

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

2 학습목표 검색에서레코드와키의역할을구분한다. 이진검색트리에서의검색 삽입 삭제작업의원리를이해한다. 이진검색트리의균형이작업의효율성에미치는영향을이해하고, 레드블랙트리의삽입 삭제작업의원리를이해한다. B- 트리의도입동기를이해하고검색 삽입 삭제작업의원리를이해한다. 검색트리관련작업의점근적수행시간을이해한다. 일차원검색의기본원리와다차원검색의연관성을이해한다 한빛미디어 레코드, 키, 검색트리 레코드 ecod 개체에대해수집된모든정보를포함하고있는저장단위 e.g., 사람의레코드 주민번호, 이름, 집주소, 집전화번호, 직장전화번호, 휴대폰번호, 최종학력, 연소득, 가족상황등의정보포함 필드 field 레코드에서각각의정보를나타내는부분 e.g., 위사람의레코드에서각각의정보를나타내는부분 검색키 each key 또는키 key 다른레코드와중복되지않도록각레코드를대표할수있는필드 키는하나의필드로이루어질수도있고, 두개이상의필드로이루어질수도있다 검색트리 each tee 각노드가규칙에맞도록하나씩의키를갖고있다 이를통해해당레코드가저장된위치를알수있다 2

3 Binay Seach Tee (BST) 각노드는하나씩의키값을갖는다. 각노드의키값은다르다. 최상위레벨에루트노드가있고, 각노드는최대두개의자식을갖는다. 임의의노드의키값은자신의왼쪽자식노드의키값보다크고, 오른쪽자식의키값보다작다. BST 의예 (a) (b) 3

4 서브트리의예 (a) (b) 노드 의왼쪽서브트리 (c) 노드 의오른쪽서브트리 BST 에서의검색 teeseach(t, ) t: 트리의루트노드 : 검색하고자하는키 // 성공하면해당노드를리턴, 실패하면 NIL 을리턴 { if (t=nil o key[t]=) then etun t; if ( < key[t]) then etun teeseach(left[t], ); ele etun teeseach(ight[t], ); } 4

5 BST 검색에서의재귀적관점 t left[t] ight[t] BST 검색에서실패 / 성공하는경우 성공 검색이 leaf 노드까지가지않고, 중간에어떤노드 의키값이 와같아지는순간 을리턴하고종료 실패 검색이루트노드에서 leaf 노드까지진행된다. leaf 노드는자식이없으므로 teeseach(nil, ) 가되어 NIL 을리턴하고종료. 그림 5-4 참조. 교재 P 132 5

6 BST 에서의삽입의예 1:, 20, 25, 40, 10, 35 순으로삽입됨 (a) (b) (c) (d) (e) (f) BST 에서의삽입의예 2: 10, 20, 25,, 40, 45 순으로삽입됨 (f) 6

7 BST 에서의삽입개요 // 같은키값이트리내에없다고가정 teeinet(t, ) t: 트리의루트노드 : 삽입하고자하는키 // 작업완료후루트노드의포인터를리턴한다. { if (t=nil) then { // 검색에실패했음. Leaf까지내려옴. key[] ; : 새노드 etun ; } if ( < key(t)) then {left[t] teeinet(left[t], ); etun t;} ele {ight[t] teeinet(ight[t], ); etun t;} } BST 에서의삽입상세버전 // 같은키값이트리내에없다고가정 teeinet(t, ) t: 트리의루트노드 : 삽입하고자하는키 // 작업완료후루트노드의포인터를리턴한다. { if (t=nil) then { // 검색에실패했음. Leaf까지내려옴. key[] ; left[] NIL; left[] NIL; : 새노드 etun ; } if ( < key(t)) then {left[t] teeinet(left[t], ); etun t;} ele {ight[t] teeinet(ight[t], ); etun t;} } 7

8 BST 에서의삭제 3 가지경우에따라다르게처리한다. Cae 1 : 이리프노드인경우 Cae 2 : 의자식노드가하나인경우 Cae 3 : 의자식노드가두개인경우 t: 트리의루트노드 : 삭제하고자하는노드 BST 에서의삭제개요 Sketch-TeeDelete(t, ) // t: 트리의루트노드 // : 삭제하고자하는노드 { if ( 이리프노드 ) then Cae 1 그냥 을버린다 ; ele if ( 의자식이하나만있음 ) then Cae 2 의부모가 의자식을직접가리키도록한다 ; ele Cae 3 의오른쪽서브트리의최소원소노드 를삭제하고, 를 자리에놓는다 ; } 8

9 삭제의예 : Cae 은리프노드이므로지우고, 단지 의부모노드에서 을가리키고있던포인터를 NIL 로만바꿔주면됨 (a) 의자식이없음 (b) 단순히 을제거한다 삭제의예 : Cae 의부모노드에서 을가리키고있던포인터를 의자식을가리키도록바꿔주면됨 (a) 의자식이하나뿐임 (b) 을제거 (c) 자리에 의자식을놓는다 9

10 삭제의예 : Cae 자리에옮겨놓아도 BST 의성질을전혀깨뜨리지않는원소는무엇일까? 왼쪽서브트리원소들보다크고, 오른쪽서브트리의원소들보다작아야함. 트리전체에딱두개가존재!!! ü 의왼쪽서브트리에서가장큰원소 ü 의오른쪽서브트리에서가장작은원소 (a) 의직후원소 를찾는다 (b) 을없앤다 ü 의왼쪽서브트리에서가장큰원소 의직전원소임 오른자식존재불가 ü 의오른쪽서브트리에서가장작은원소 의직후원소임 왼쪽자식존재불가 (c) 를 자리로옮긴다 (d) 가있던자리에 의자식을놓는다 10

11 teedelete(t,, ) { if ( = t) then oot deletenode(t); ele if ( = left[]) then left[] deletenode(); ele ight[] deletenode(); BST 에서의삭제상세버전 이루트노드인경우 이루트가아닌경우 이 의왼쪽자식 이 의오른쪽자식 } deletenode() // 의부모노드에매달릴노드를리턴함 { if (left[] = ight[] = NIL) then etun NIL; Cae 1 ele if (left[] = NIL and ight[] NIL) then etun ight[]; Cae 2-1 ele if (left[] NIL and ight[] = NIL) then etun left[]; Cae 2-2 ele { Cae 3 ight[]; while (left[] NIL) {aent ; left[];} key[] key[]; if ( = ight[]) then ight[] ight[]; ele left[aent] ight[]; etun ; } } t: 트리의루트노드 : 삭제하고자하는노드 : 의부모노드 Red-Black Tee (RB Tee) BST 의모든노드에블랙또는레드의색을칠하되다음의레드블랙특성을만족해야한다 루트는블랙이다모든리프는블랙이다노드가레드이면그노드의자식은반드시블랙이다루트노드에서임의의리프노드에이르는경로에서만나는블랙노드의수는모두같다 ü 여기서리프노드는일반적인의미의리프노드와다르다. 모든 NIL 포인터가 NIL 이라는리프노드를가리킨다고가정한다. 11

12 BST 를 RB Tee 로만든예 NIL NIL NIL NIL NIL NIL NIL NIL NIL (a) BST 의한예 (b) (a) 를 RB Tee 로만든예 NIL (c) 실제구현시의 NIL 노드처리방법 RB Tee 에서의삽입 BST 에서의삽입과같다. 다만삽입후삽입된노드를레드로칠한다. ( 이노드를 라하자 ) 만일 의부모노드 의색상이 블랙이면아무문제없다. 레드이면레드블랙특성 3 이깨진다. 그러므로 가레드인경우만고려하면된다 12

13 RB Tee 에서의삽입 주어진조건 : i ed 2 는반드시블랙이고, 의형제노드도반드시블랙이다 의형제노드인 는레드 / 블랙이모두가능하므로 의색상에따라두가지로나눈다 Cae 1: 가레드 Cae 2: 가블랙 2? Cae 1: 가레드 와 의색상을 ed à black 으로, 2 의색상은 black à ed 2 가루트면 2 의색상을다시 black 을바꾸고끝. 2 가루트가아니면 2 의부모색상을확인해야함. ü 2 의부모색상이 black: RB 트리속성만족됨! ü 2 의부모색상이 ed: 지금과똑같은경우이므로 ecuion 돌면됨. Cae : 색상이바뀐노드 ü 2 에서방금과같은문제가발생할수있다 : ecuive oblem! 13

14 Cae 2-1: 가블랙이고, 가 의오른쪽자식 를중심으로왼쪽으로회전한다. 여전히레드블랙특성 ƒ 을위반한다. Cae 2-2 로간다. Cae Cae 2-2로! 2 y y Cae 2-2: 가블랙이고, 가 의왼쪽자식 2 를중심으로오른쪽으로회전하고, 와 2 의색상을맞바꾼다. : 색상이바뀐노드 Cae y y ü 삽입완료! 14

15 RB Tee 에서의삭제 삭제노드의자식이없거나 1개만을가진노드로제한해도된다 텍스트의.146의첫문단참조 삭제노드를 m이라하자 삭제노드가레드이면아무문제없다 삭제노드가블랙이라도 ( 유일한 ) 자식 가레드이면문제없다 삭제후 의색상을블랙으로바꾸면됨. m m m 이블랙이면 m 의부모색상은상관없게됨. 이제까다로운경우는 m 과 의색상이모두블랙일때이다. 이때 m 이삭제되면 는 m 의부모 의자식이되고, 레드블랙특성 4 가깨진다.? m -1 옆의 -1은루트에서 를통해리프에이르는경로에서블랙노드의수가하나모자람을의미한다. -1 l??? 의주변상황에따라처리방법이달라진다 m 삭제후문제발생 ( 레드블랙특성 4 위반 ) 15

16 경우의수나누기 i ed i black -1-1 Cae 1 - 가레드면 는반드시블랙임. Cae 2 - 가블랙이면 는블랙, 레드모두가능. Cae l Cae l Cae l Cae l Cae l Cae l Cae l 의색상만다른데 의색상이처리방법에영향을미치지않으므로통합처리할수있음 16

17 Cae l Cae *-2-1 l Cae *-3-1 l Cae l ü 최종적으로 5 가지경우로나뉜다 Cae l 각경우에따른처리 ü Cae 1-1 단순히 와 의색상을맞바꾼다. 에이르는경로상에블랙노드가 1 개늘었으므로 OK 에이르는경로상의블랙노드개수는변화없으므로 OK Cae l l 17

18 ü Cae *-2 를중심으로왼쪽으로회전하고, 와 의색상을맞바꾸고, 의색상을레드에서블랙으로바꿈 Ø 에이르는경로상에블랙노드가 1 개늘었으므로 OK Ø 1,2,3 으로표시된이르는서브트리까지경로상의블랙노드개수는변화없으므로 OK Cae * ü Cae *-3 를오른쪽으로회전하고, l 과 의색상을맞바꾼다. 이제 Cae *-2 와같은모양이되었으므로 Cae *-2 로이동하여마무리처리한다. Cae *-3-1 l Cae *-2 로 -1 1 l

19 ü Cae 2-1 ü 단순히 의색상을블랙에서레드로바꾼다. ü 이제 를지나는경로에서도블랙노드가 1 개부족 è 를지나가는경로전체에서블랙노드가하나부족함 ü Recuive oblem. 를문제발생노드로하여재귀적으로다시시작한다. Cae l l -1 ü Cae 2-4 를중심으로왼쪽으로회전하고, 와 의색상을맞바꾼다. l 과 을경유하는경로는문제가없다. 다만문제가발생한 의부모노드의색상이블랙에서레드로바뀌었음 è Cae 1 에해당 v 색상조합을따져 Cae 1-1, Cae 1-2, Cae 1-3 중의하나로이동한다. Cae l Cae 1-1, Cae 1-2, Cae 1-3 중의하나로 -1 l 19

20 B-Tee 검색트리가방대하면검색트리를메모리에모두올려놓고사용할수없을수있음 검색트리를디스크에저장해두고사용해야함 ( 외부검색트리형태 ) 디스크의접근단위는블록 ( 페이지 ) 디스크에한번접근하는시간은수십만명령어의처리시간과맞먹는다 검색트리가디스크에저장되어있다면트리의높이를최소화하는것이유리 예 ) 10 억개내외의키를관리해야한다면? BST 가균형이잘맞았다고해도트리깊이가 레벨정도됨. 이럴때한노드에자식이두개가아닌여러개가붙을수있다면? 한노드에 256 개의자식이붙을수있으면깊이가 5 정도될것임. B- 트리는다진검색트리가균형을유지하도록하여최악의경우디스크접근횟수를줄인것 B- 트리 == 외부다진검색트리 다진검색트리 key 0 key 1 key 2 key k-1 T 0 T 1 T 2 T 3 T k key i-1 < T i < key i 20

21 B-Tee B-Tee 는균형잡힌다진검색트리로다음의성질을만족 루트를제외한모든노드는 ~ k 개의키를갖는다. 분기수를최대한늘리되균형을위해최대허용량의반이상은채우자는의미 모든리프노드는같은깊이를가진다. B- 트리의노드구조 부모노드의페이지 <key 0, 0 > <key 1, 1 > <key k-1, k-1 > 21

22 B- 트리를통해 Recod 에접근하는과정 <key 0, 0 > <key i, i > 키 key i 를가진 ecod 페이지 i B-Tee 에서의검색 노드의여러키중일치하는것이있는지확인해야함. key i-1 < < key i 인두키를찾아그사이에있는따라내려가며찾아야함. 22

23 B-Tee 에서의삽입개요 BTeeInet(t, ) { 를삽입할리프노드 을찾는다 ; 를 에삽입한다 ; t : 트리의루트노드 : 삽입하고자하는키 if (에오버플로우발생 ) then cleaoveflow(); } cleaoveflow() { if (의형제노드중여유가있는노드가있음 ) then {의남는키를넘긴다 }; ele { 을둘로분할하고가운데키를부모노드로넘긴다 ; if ( 부모노드 에오버플로우발생 ) then cleaoveflow(); } } B-Tee 에서삽입의예 (k=5 일때 ) (a) , 31 삽입 (b) 삽입 23

24 (c) 오버플로우! 바로오른쪽형제노드에공간여유가있으니키를하나넘긴다 ( 재분배 : editibution). 맨오른쪽의 6 을형제노드에바로넘기면 B- 트리성질이훼손됨. 부모노드에있는 7 을넘기고그자리에 6 을놓는다 삽입 (d) 39 삽입 오버플로우! 바로옆형제노드에공간여유가없음 è 분할해야함 맨가운데키 40 을부모노드로넘기고나머지를분할함 노드가늘어났으므로부모노드에분기를위한키가하나더필요하기때문 , 35, 36 삽입 분할! 24

25 (e) 23, 35, 36 삽입 삽입 (f) 삽입 오버플로우! 오버플로우! 분할! 분할!

26 B-Tee 에서의삭제 BTeeDelete(t,, v) t : 트리의루트노드 { : 삭제하고자하는키 if (v가리프노드아님 ) then { v : 를갖고있는노드 의직후원소 y를가진리프노드를찾는다 ; 와 y를맞바꾼다 ; } 리프노드에서 를제거하고이리프노드를 이라한다 ; if (에서언더플로우발생 ) then cleaundeflow(); } cleaundeflow() { if ( 의형제노드중키를하나내놓을수있는여분을가진노드가있음 ) then { 이키를넘겨받는다 ;} ele { 의형제노드와 을합병한다 ; if ( 부모노드 에언더플로우발생 ) then cleaundeflow(); } } (a) B-Tee 에서삭제의예 삭제 (b) 삭제 26

27 (c) 4, 5 교환 제거 언더플로우! 형제노드중여분의키를내놓을수있는지본다 왼쪽노드가여분이있으므로키 3 을가져온다. 키 3 을바로 6 옆에놓을수없으므로부노노드에있는 5 를끌어내리고그자리에 3 을놓는다. (c) 계속 재분배 삭제 (d) 언더플로우! 형제노드가여분의키가없으므로병합한다. 형제노드의내용과부모노드의키하나를내려받아행함 27

28 언더플로우! 3 15 병합! 병합에키하나 (8) 를내준부모노드에서다시언더플로우발생 앞서발생한언더플로우와같은문제이므로재귀적으로처리한다. 부모노드가루트노드이고키가하나밖에없으므로루트노드는키를넘겨주고없어진다 병합! 다차원검색트리 검색키가두개이상의필드로이루어진검색 복수개의필드를그대로검색에사용하는트리 3 개의다차원검색트리와하나의다차원저장 / 검색방법소개 KD- 트리 KDB- 트리 R- 트리 그리드파일 한빛미디어 28

29 KD-Tee 각레벨에서필드를번갈아가며검색에사용한다. 트리의한레벨에서는하나의필드만사용한다. 레벨 0( 루트노드 ) 에서는필드 0 만으로분기 레벨 i 에서는필드 i(mod k) 만으로분기 총 k 개의필드를사용하는검색이라면, k 개의레벨을내려가면검색에사용하는필드가일치한다 한빛미디어 레벨 0 a 0 a 1 a k-1 KD-Tee 레벨 1 b 0 b 1 b k-1 c 0 c 1 c k-1 레벨 2 d 0 d 1 d 2 e 0 e 1 e 2 레벨 k-1 레벨 k 0 1 k k-1 29

30 KD-Tee 에서의삽입예 삽입순서 : A(50, 50), B(10, 70), C(80, 85), D(25, 20), E(40, 85), F(70, 85), G(10, ) 키가두개이므로레벨별로번갈아사용하여삽입한다. A B C D E F G 10 KD-Tee 상의각노드는다차원공간의한점에해당 한노드에서필드 를사용해분기하는것 è 그노드가속한다차원공간에대해공간을둘로분할하는효과 검색을통해내려간다는것 è 다차원공간에서이렇게나누어진결과에대해공간의범위를점점좁혀나가는것 A E(40,85) F(70,85) C(80,85) B(10,70) B C G(10,) D E F A(50,50) G 10 D(25,20)

31 KD-Tee 에서의검색과삽입 이진탐색트리에서의검색 / 삽입방법을단순확장 KD-Tee 에서의삭제 이진탐색트리에서의삭제를신중하게확장해야함. 삭제노드 이몇개의자식을갖느냐에따라 자식이없는경우 BST 와마찬가지로노드 만제거하면됨 자식이하나뿐인경우 BST 처럼노드 의부모가노드 의자식을가리키게하면, 노드 의자식서브트리들의레벨이하나씩올라가므로각레벨에서사용하는키가달라져문제가발생 è 자식이둘인경우와같은방법으로삭제해야함. 자식이둘인경우 노드 의오른쪽서브트리중노드 에서분기에사용한필드값이가장작은노드를찾아삭제하고, 그노드를노드 자리로이동한다. A 루트노드 A 를삭제하고자한다. 키값을 (, y) 라하자. B 55 C D E F 85 G 61 H 70 I J K L M

32 A A 의오른쪽서브트리에서 값이가장작은노드를찾는다. 노드 C 의 값이가장작다. B 55 C D E F 85 G 61 H 70 I J K L M B 55 C A 노드 A 에노드 C 를옮겨놓는다. 이제노드 C 를삭제해야한다. è 재귀적으로처리할수있음. D E F 85 G 61 H 70 I J K L M

33 C C 가있는레벨은분기를위해 y 값을사용 C 의오른쪽서브트리에서 y 값이가장작은노드를찾으면노드 L 이다. B 55 D E F 85 G 61 H 70 I J K L M C L 을 C 의빈자리로옮긴다. B 55 L D E F 85 G 61 H 70 I J K M

34 C L 은리프노드였으므로 L 이위로옮겨감으로써영향을받는자식이없다. L 에대한부모노드의연결만 NIL 로바꾼다. B 55 L D E F 85 G 61 H 70 I J K M B 55 D KD-Tee 에서 또는 y 값이가장작은노드찾기 여러키를사용하므로 BST 같이쉽지는않다. 예 ) A 의오른쪽서브트리에서 값이가장작은노드찾는과정 AàC 로오면 : C 의서브트리는모두다내려가봐야함 노드 C 는 y 값에의해분기했으므로 C 의후손들의 값을짐작할수없기때문 A C E F 85 E 의오른쪽서브트리는 E 의 값보다큰 값을가지므로볼필요가없다. E 의왼쪽서브트리를확인한다음, 55 보다더작은 값노드가없으므로 F 로간다. F 의오른쪽서브트리도볼필요가없다. G 61 H 70 I J K L M

35 KDB-Tee KD-Tee 와 B-Tee 의특성결합 KD-Tee 의특성 다차원 key B-Tee 의특성 디스크의한페이지가한노드와일치 Balanced tee 각레코드는 k 차원공간에서하나의점에해당 자신이속한공간을담당하는색인 node 들을따라감 KDB-Tee 의 Node 들 Intenal node 하나는 k 차원공간에서한영역을담당한다 루트노드는 k 차원공간전체를커버 이하의노드들은 k 차원공간의부분영역을담당 같은 level 에있는모든노드들은서로겹치는영역이없다 같은 level 에있는모든노드들의담당영역을합하면 k 차원공간전체가됨 Intenal node 는따라서영역노드라고할수있다. 리프노드는데이터페이지정보를저장 따라서모든리프노드는키노드라고할수있다. 35

36 공간은 3 개로나누어져 3 개의페이지가각각커버한다. 각페이지는다시복수개로나누어져자식페이지들이나누어커버한다. 맨아래리프노드들은각각한영역을커버하는데, 해당영역에속하는키들의정보가들어있다. : 제외된영역 : 점 ( 하나의레코드포인트 ) Dik 의한페이지 36

37 KDB-Tee 에서의검색 루트노드부터시작해해당키가포함되는영역을따라리프노드까지내려간다. 키는 ( 0, 1,, k-1 ) 로표현됨 각노드의영역들은서로겹치는부분이없으므로키에의해도달하는리프는유일함. 리프노드에해당키의 ( 키, 페이지번호 ) 정보가있으면해당페이지로가서레코드를가져옴. 도달한리프에해당키의 ( 키, 페이지번호 ) 정보가없으면검색실패 영역검색도가능 키는 (<min 0, ma 0 >, < min 1, ma 1 >,, < min k-1, ma k-1 >) 로표현됨. KDB-Tee 에서의삽입 삽입과정 삽입할키가속하는리프노드를찾는다. 해당리프노드가키를더수용할수있는공간이있으면, ( 키, 페이지번호 ) 쌍을삽입하고끝냄. 그렇지않으면, 형제노드와재분배할수있으면재분배함. 재분배불가능시리프노드를분할하여두개로만듦 이에따라부모노드에있는한영역이두개로나누어지므로 ( 영역, 페이지번호 ) 쌍이하나늘어난다. 부모노드가 ( 영역, 페이지번호 ) 를하나더수용할수있으면삽입은끝. 그렇지않으면부모노드를분할해야함. 37

38 (a) 분할전 의자식노드에서분할 이분할이노드 에서오버플로우를유발하면노드 도분할해야함. 분할시자식노드에서분할을위해사용된차원의분할선을노드 전체에적용하여자른다. 의부모노드에서 를가리키던 ( 영역, 페이지번호 ) 를두개로나누어야함. (b) 노드 분할후 KDB-Tee 에서의삭제 삭제과정 : B- 트리와유사 언더플로우가생기지않으면삭제완료 언더플로우가생기면, 이웃영역과경계를재조정해서재분배 재분배가불가능하면병합을시도 병합은부모노드에서 ( 영역, 페이지번호 ) 쌍두개가하나로통합된다. 이로인해부모노드에서또언더플로우가생기면재귀적으로처리한다. 38

39 R-Tee 다차원검색을다룰수있도록 B- 트리를확장한것 균형잡힌검색트리 R-Tee 의성질 루트를제외한모든내부노드는 ~ k개의영역을갖는다. 모든리프노드는같은깊이를가진다. 모든레코드는리프노드에서만가리킴 다차원도형의저장가능 점, 선, 면, 폐공간, 각종도형 MBR(Minimum Bounding Rectangle) 로근사 R- 트리로구성하고자하는레코드들의이차원키예 이름 Key1 Key2 A B 4 10 C 6 35 D 1 10 E 6 40 F 5 45 G 7 85 H 3 20 I J 2 K 8 50 L

40 이차원키들의레코드를이차원공간에표시한예 A G I J L F E C K D H B R1 R2 R3 R4 R5 R6 R7 A I C G E K D H B F J L R1 R4 G A R3 I k=5, 즉루트를제외한모든노드는 2 개 ~ 5 개의영역을가지는 R-Tee 임. 검색 R-Tee 는한노드에있는영역들이서로겹칠수있음 검색의경로가유일하지않을수있음. 예 ) 레코드 E 는 R4 와 R5 에동시에속한다 R2 D R7 J R6 H L B F E C K R

41 R1 R2 R3 R4 R5 R6 R A I C G E K D H B F J L R2 D R7 J R6 H N L B F M R1 R4 G E C K A R5 R3 I 레코드삽입과정 레코드 M 은 R7 에속하는데문제없이삽입됨. 역시 R7 에속하는 N 을삽입하려하면오버플로우발생 M N R1 R2 R3 R4 R5 R6 R A I C G E K D H B M J N L F R2 R6 D R7 J H N L B F M R1 R4 G E C K A R5 R3 I 레코드삽입과정 ( 계속 ) R6 과 R7 의영역을조정함으로써두리프에속하는키들을재분배 노드에서 R6 와 R7 은같은이름으로표현되었지만실제영역의내용은바뀌었다

42 R1 R2 R3 R4 R5 R6 R7 y A I C G E K D H B M P J N L F R2 R6 P D R7 J O H Q L N B F M R1 R4 G E C K A R5 R3 I Q 레코드삽입과정 ( 계속 ) R7 에속하는레코드 O 와 R6 에속하는레코드 P 는별문제없이삽입성공 여기세 R6 에속하는레코드 Q 를또삽입하면오버플로우발생 재분배를시도했으나형제노드에빈공간이없다. O R1 R2 R3 R4 R5 R6 R7 R8 D H P Q J N L F O B M R1 R4 G A R3 I 레코드삽입과정 ( 계속 ) 재분배불가이어서영역 R6 를둘로분할하여 R6 와 R8 로나누었다. 만약부모노드에서도오버플로우가발생했다면재귀적으로처리한다 R2 R7 J O R6 P H D Q L F N R8 M B E C K R

43 Gid File 검색트리가아닌일종의저장시스템 키의내용에따라레코드가저장된곳을 단번에 알아낼수있도록설계된다차원저장 / 검색수단 a(10, 50) f(, 45) k(55, 45) e(, 40) d(85, 45) i(65, 35) h(80, 35) l(25, 25) 0 j(40, 15) b(10, 10) c(80, 10) g(55, 5) (a) P1 a b c a(10, 50) b(10, 10) c(80, 10) 0 (b) a b P1 a(10, 50) d(85, 45) c d P2 b(10, 10) c(80, 10) 0 43

44 (c) a b P1 a(10, 50) e(, 40) d(85, 45) c d e P2 b(10, 10) c(80, 10) (d) a b f P1 a(10, 50) f(, 45) e(, 40) d(85, 45) c d e P2 b(10, 10) c(80, 10) 0 (e) a b f P1 a(10, 50) f(, 45) e(, 40) d(85, 45) P2 e d 0 b(10, 10) c(80, 10) g(55, 5) c g P (f) a b f P1 a(10, 50) f(, 45) e(, 40) d(85, 45) h(80, 35) P2 e d h 0 b(10, 10) c(80, 10) g(55, 5) P3 c g 44

45 (g) a b f P1 a(10, 50) f(, 45) e(, 40) d(85, 45) e i P2 i(65, 35) h(80, 35) P4 d h 0 b(10, 10) c(80, 10) g(55, 5) c g P P1 (h) a(10, 50) f(, 45) e(, 40) d(85, 45) a b f j P5 P2 i(65, 35) h(80, 35) e i P4 0 j(40, 15) b(10, 10) c(80, 10) g(55, 5) d c h g P3 (i) a(10, 50) f(, 45) k(55, 45) e(, 40) d(85, 45) a b f j l P1 P5 P2 l(25, 25) i(65, 35) h(80, 35) e i k P4 0 j(40, 15) b(10, 10) c(80, 10) g(55, 5) d c h g P

46 Gid Configuation 일차스케일링배열 그리드배열 Thank you 한빛미디어 46

1장. 리스트

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

More information

제 11 장 다원 탐색 트리

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

More information

슬라이드 1

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

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

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

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

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

Microsoft PowerPoint - 6장 탐색.pptx

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

More information

Microsoft PowerPoint - chap10_tree

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

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

1장. 리스트

1장. 리스트 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

입학사정관제도

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

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 - 제8장-트리.pptx

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

More information

08장.트리

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

More information

슬라이드 1

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

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

PowerPoint 프레젠테이션

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

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

PowerPoint 프레젠테이션

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

More information

쉽게 배우는 알고리즘 강의노트

쉽게 배우는 알고리즘 강의노트 쉽게배우는알고리즘 장. 정렬 Sorting http://www.hanbit.co.kr 장. 정렬 Sorting 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고,

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

Microsoft PowerPoint - 자료구조2008Chap07

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

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

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

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

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

슬라이드 1

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

More information

-09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고, 선형시간정렬이가능한조건과선형시간정렬알고리즘을이해한다. - - 한빛미디어 Sortng Algorth

-09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고, 선형시간정렬이가능한조건과선형시간정렬알고리즘을이해한다. - - 한빛미디어 Sortng Algorth -09- 쉽게배우는알고리즘 장. 정렬 Sortng http://academy.hanb.co.kr 장. 정렬 Sortng 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 한빛미디어 1 -09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다.

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

PowerPoint 프레젠테이션

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

More information

슬라이드 1

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

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

7장

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

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

문제여섯사람이일곱개의발판위에있다. 빈발판을중심으로세사람은왼쪽에서가운데를보고서있고, 다른세사람은오른쪽에서가운데를보고서있다. Figure: 양창모 ( 청주교육대학교컴퓨터교육과 ) Problems and Algorithms 2015 년여름 1 / 35 목표왼쪽에서있던세사람을오른쪽으로, 오른쪽에서있던사람을왼쪽으로이동한다. 가운데발판은여전히비어있어야한다. 최소의움직임으로목표를달성하도록한다.

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

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

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

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

10. 다차원공간화일 DBLAB, SNU v 다차원데이타 u 다차원데이타 (multidimensional data) 전통적인 1차원데이타레코드가아니라 CAD (computer aided design) 나지리정보시스템 (geographical information sys 10. 다차원공간화일 v 다차원데이타 u 다차원데이타 (multidimensionl dt) 전통적인 1차원데이타레코드가아니라 CAD (computer ided design) 나지리정보시스템 (geogrphicl informtion system) 에서의선 (line), 면 (plne), 위치 (loction) 와같은데이타 다차원데이타를나타내는 (x, y) 또는

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

슬라이드 1

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

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

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

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

제 1 장 기본 개념

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

More information

1장. 리스트

1장. 리스트 01. 링크드리스트 02. 더블링크드리스트 03. 환형링크드리스트 배열과는달리유연하게크기를바꿀수있는자료구조 각노드는다음노드를가리키는포인터를가짐. 각노드를다음노드를가리키는포인터로연결하여만든리스트. Single Linked List 라고도함. 링크드리스트의첫번째노드를헤드 (Head), 마지막노드를테일 (Tail) 이라고한다. C 언어로표현하는링크드리스트의노드 typedef

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

슬라이드 1

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

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

Microsoft PowerPoint Relations.pptx

Microsoft PowerPoint Relations.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2010년봄학기강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

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

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

<4D F736F F F696E74202D FBFACB0E120C0DAB7E1B1B8C1B6205BC8A3C8AF20B8F0B5E55D>

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

More information

Algorithms

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

More information

Microsoft PowerPoint - chap4_list

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

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

제 9 장 우선순위 큐

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 A 반 T2 - 김우빈 (201011321) 임국현 (201011358) 박대규 (201011329) Robot Vacuum Cleaner 1 Motor Sensor RVC Control Cleaner Robot Vaccum Cleaner 2 / Event Format/ Type Front Sensor RVC 앞의장애물의유무를감지한다. True / False,

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

슬라이드 1

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

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 5 강스케일링및회전 이대현교수 학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space) SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z)

More information

EA0015: 컴파일러

EA0015: 컴파일러 5 Context-Free Grammar 무엇을공부하나? 앞에서배운 " 정규식 " 은언어의 " 어휘 (lexeme)" 를표현하는도구로사용되었다. 언어의 " 구문 (syntax)" 은 " 정규언어 " 의범위를벗어나기때문에 " 정규식 " 으로표현이불가능하다. 본장에서배우는 " 문맥자유문법 " 은언어의 " 구문 (syntax)" 을표현할수있는도구이다. 어떤 " 문맥자유문법

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

e-비즈니스 전략 수립

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

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

More information

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

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

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

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

쉽게배우는알고리즘 6 장. 해시테이블 Hash Table IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한

쉽게배우는알고리즘 6 장. 해시테이블 Hash Table   IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한 쉽게배우는알고리즘 6 장. 해시테이블 Hash Table http://academy.hanb.co.kr 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 - 2 - 한빛미디어 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

More information

鍮뚮┰硫붾돱??李⑤낯

鍮뚮┰硫붾돱??李⑤낯 5 1 2 3 4 5 6 7 8 9 1 2 3 6 7 1 2 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 OK 46 47 OK 48 OK 49 50 51 OK OK 52 53 54 55 56 57 58 59 60 61

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

Microsoft PowerPoint Index Structures.ppt

Microsoft PowerPoint Index Structures.ppt 자료처리 () 26 년봄학기문양세강원대학교컴퓨터과학과 강의 강의내용 Binary Trees (Ch. 6 in 화일구조 ) B-tree, B*-tree, Trie (Ch. 6 in 화일구조 ) B + -tree (Ch. 7 in 화일구조 ) Indexed Sequential File (Ch. 7 in 화일구조 ) Page 2 색인, 인덱스 (Index) 특징

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

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0) FGB-P8-3 8 학번수학과권혁준 8 년 5 월 9 일 Lemma p 를 C[, ] 에속하는음수가되지않는함수라하자. 이때 y C, C[, ] 가미분방정식 y t + ptyt, t,, y y 을만족하는해라고하면, y 는, 에서연속적인이계도함수를가지게확 장될수있다. Proof y 은 y 의도함수이므로미적분학의기본정리에의하여, y 은 y 의어떤원시 함수와적분상수의합으로표시될수있다.

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1 IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로

More information

슬라이드 1

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

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

슬라이드 1

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

More information

슬라이드 1

슬라이드 1 UGENS SNC Techinical Report OEL6 + 12C RAC 사원최재정 UGENS SNC 목차 1. 12c 설치된곳에자료수집 2. SERVER DB 삭제 3. 12c grid 설치 4. oracle 12c 설치 5. 확인 2 Vi.bash_profile if [ -f ~/.bashrc ]; then. ~/.bashrc fi # User specific

More information

5 장 트 리

5 장  트 리 5 장 트리 Copyright 2007 DBLAB, Seoul National University 트리구조 Copyright 2007 DBLAB, Seoul National University 2 트리 트리 : 하나이상의노드 (node) 로이루어진유한집합 1 하나의루트 (root) 노드 2 나머지노드들은 n( 0) 개의분리집합 T 1, T 2,, T n 으로분할

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

?

? Annual Report National Museum of Modern and Contemporary Art, Korea CONTENTS Annual Report National Museum of Modern and Contemporary Art, Korea Annual Report National Museum of Modern and Contemporary

More information

Algorithms

Algorithms 자료구조 & 알고리즘 정렬과탐색알고리즘 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 기초적인정렬알고리즘 고급정렬알고리즘 탐색알고리즘 2 정 렬 (Sort) 정렬 (sort) 의개념 순서없이배열되어있는자료들을재배열하는것 정렬의대상 : 레코드 정렬의기준 : 정렬키 (sort key) 필드 정렬방법의분류

More information

09J1_ _R.hwp

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

More information

<FEFF11121162110211611106116E002D1107116911B71112116900330036002E0069006E0064006400000000000093782FC816B427590034001CBDFC1B558B202E6559E830EB00000000937C28D9>

<FEFF11121162110211611106116E002D1107116911B71112116900330036002E0069006E0064006400000000000093782FC816B427590034001CBDFC1B558B202E6559E830EB00000000937C28D9> 02 04 06 14 16 19 24 26 27 28 31 3 4 5 세상과 (소통)하다!! 세상과 (소통)하다!! 세상과 (소통)하다!! 6 7 건강지원 프로그램으로 굳어져가는 몸과 마음을 풀어보아요~ 8 9 새해 복 많이 받으세요~ 10 11 12 13 14 15 14 14 14 14 15 15 16 17 18 19 20 21 방과 후 교실(해나무 주간보호센터

More information

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로 3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로성립한다. Theorem 7 두함수 f : X Y 와 g : X Y 에대하여, f = g f(x)

More information

설계란 무엇인가?

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

More information

Discrete Mathematics

Discrete Mathematics 25 년봄학기 문양세컴퓨터과학과강원대학교자연과학대학 강의 강의내용 Binary Trees (Ch. 6 in 화일구조 ) B-tree, B*-tree, Trie (Ch. 6 in 화일구조 ) B + -tree (Ch. 7 in 화일구조 ) Indexed Sequential File (Ch. 7 in 화일구조 ) Page 2 색인, 인덱스 (Index) 특징 파일의레코드들에대한효율적접근구조

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

리스트연산, 검색 + 삽입 + 삭제 새로운항목을리스트의처음, 중간, 끝에추가. 기존의항목을리스트의임의의위치에서삭제. 모든항목을삭제. 기존항목을대치 (replace). 리스트가특정항목을가지고있는지를검색 (search). 리스트의특정위치의항목을반환. 리스트안의항목의개수를센

리스트연산, 검색 + 삽입 + 삭제 새로운항목을리스트의처음, 중간, 끝에추가. 기존의항목을리스트의임의의위치에서삭제. 모든항목을삭제. 기존항목을대치 (replace). 리스트가특정항목을가지고있는지를검색 (search). 리스트의특정위치의항목을반환. 리스트안의항목의개수를센 Linked List 2014 2 학기 SANGJI University 리스트 (list) 1. 리스트개념 고정된길이의자료 ( 원소 ) 들을순차적으로나열해놓은집합을가르키는자료구조의추상적인개념 순서를가진항목들의모임 집합 (set) : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : ( ㄱ, ㄴ,, ㅎ ) 핸드폰의문자메시지리스트

More information

슬라이드 1

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

More information