5 장 트 리

Size: px
Start display at page:

Download "5 장 트 리"

Transcription

1 5 장 트리 Copyright 2007 DBLAB, Seoul National University

2 트리구조 Copyright 2007 DBLAB, Seoul National University 2

3 트리 트리 : 하나이상의노드 (node) 로이루어진유한집합 1 하나의루트 (root) 노드 2 나머지노드들은 n( 0) 개의분리집합 T 1, T 2,, T n 으로분할 (T i : 루트의서브트리 ) 노드 : 한정보아이템 + 다른노드로뻗어진가지 노드의차수 (degree) : 노드의서브트리수 단말 ( 리프 ) 노드 : 차수 = 0 비단말노드 : 차수 0 자식 : 노드 X 의서브트리의루트 ( 부모 ) 형제 : 부모가같은자식들 트리의차수 = max{ 노드의차수 } 조상 : 루트까지의경로상에있는모든노드 노드레벨 : 루트 - 레벨 1, 자식레벨 = 부모레벨 +1 트리의높이 ( 깊이 ) = max{ 노드레벨 } Copyright 2007 DBLAB, Seoul National University 3

4 트리의표현 레벨 A 1 B C D 2 E F G H I J 3 K L M 4 Copyright 2007 DBLAB, Seoul National University 4

5 리스트표현 트리의리스트표현 (A(B(E(K,L),F),C(G),D(H(M),I,J))) 차수가 k 인트리에대한노드구조 공간낭비많음 k 원트리에서노드수가 n 이면 nk 의자식필드중 n(k-1)+1 개필드가 0 Copyright 2007 DBLAB, Seoul National University 5

6 왼쪽자식 - 오른쪽형제표현 노드구조 left child data right sibling 트리 A B C D E F G H I J K L M Copyright 2007 DBLAB, Seoul National University 6

7 차수가 2 인트리표현 차수가 2 인트리 왼쪽자식 - 오른쪽형제트리의오른쪽형제포인터를 45 회전 루트노드의오른쪽자식은공백 이진트리 (binary tree) 왼쪽자식 - 오른쪽자식트리 Copyright 2007 DBLAB, Seoul National University 7

8 트리표현 A A A B B B 트리왼쪽자식 - 오른쪽형제트리이진트리 A A A B B C B C 트리왼쪽자식-오른쪽형제트리이진트리 C Copyright 2007 DBLAB, Seoul National University 8

9 이진트리 (1) 이진트리의특성 한노드는최대두개의가지 왼쪽서브트리와오른쪽서브트리구별 0 개의노드를가질수있음 이진트리의정의 공백이거나두개의분리된이진트리로구성된노드의유한집합 Copyright 2007 DBLAB, Seoul National University 9

10 이진트리 (2) 이진트리와일반트리의차이점 공백이진트리존재 자식의순서구별 서로다른두이진트리 Copyright 2007 DBLAB, Seoul National University 10

11 이진트리 (3) 편향이진트리와완전이진트리 A A level 1 B B C 2 C D E F G 3 D H I 4 E (a) 편향이진트리 (b) 완전이진트리 5 Copyright 2007 DBLAB, Seoul National University 11

12 이진트리의성질 (1) 최대노드수 레벨 i 에서의최대노드수 : 2 i-1 (i 1) 깊이가 k 인이진트리가가질수있는최대노드수 : 2 k - 1(k 1) 증명 1 귀납기초 : 레벨 i=1 일때루트만이유일한노드이므로레벨 i=1 에서의최대노드수 : = 2 0 = 1 귀납가설 : i 를 1 보다큰임의의양수라고가정. 레벨 i-1 에서의최대노드수는 2 i-2 라고가정 귀납과정 : 가설에의해레벨 i-1 의최대노드수는 2i-2 각노드의최대차수는 2 이므로레벨 i 의최대노드수는레벨 i-1 에서의최대노드수의 2 배 2 i-1 증명 2 k i 1 ( 레벨i의최대노드 수) k 2 i 1 i 1 2 k 1 Copyright 2007 DBLAB, Seoul National University 12

13 이진트리의성질 (2) 리프노드수와차수가 2 인노드수와의관계 n 0 =n 2 +1 n 0 : 리프노드수 n 2 : 차수가 2 인노드수 증명 n 1 : 차수 1 인노드수, n : 총노드수, B : 총가지수 n = n 0 + n 1 + n 2 루트를제외한모든노드들은들어오는가지가하나씩있으므로 n = B + 1 모든가지들은차수가 2 또는 1 인노드에서뻗어나오므로 B = n 1 + 2n 2 n = B + 1 = n 1 + 2n n 0 = n 2 +1 Copyright 2007 DBLAB, Seoul National University 13

14 이진트리의성질 (3) 포화이진트리 (full binary tree) 깊이가 k 이고, 노드수가 2 k -1 (k 0) 인이진트리 노드번호 1,,2 K -1 까지순차적부여가능 1 깊이 Copyright 2007 DBLAB, Seoul National University 14

15 이진트리의성질 (4) 완전이진트리 (Complete binary tree) 깊이가 k 이고노드수가 n 인이진트리 각노드들이깊이가 k 인포화이진트리에서 1 부터 n 까지 번호를붙인노드와 1대 1로일치 n 노드완전이진트리의높이 : log 2 ( n 1) A B C D E F G H I Copyright 2007 DBLAB, Seoul National University 15

16 이진트리의표현 (1) 배열표현 1차원배열에노드를저장 보조정리 5.4 n 개의노드를가진완전이진트리 1 parent(i) : i / 2 if i 1 2 leftchild(i) : 2i if 2i n 왼쪽자식없음 if 2i > n 3 rightchild(i) : 2i+1 if 2i+1 n 오른쪽자식없음 if 2i + 1 > n 완전이진트리 : 낭비되는공간없음 편향트리 : 공간낭비 최악의경우, 깊이 k 편향트리는 2 k -1 중 k 개만사용 Copyright 2007 DBLAB, Seoul National University 16

17 이진트리의표현 (2) E 편향트리 B C D A [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]... [16] - A B - C D -... E H D 완전이진트리 A B E F I C G [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] - A B C D E F G H I Copyright 2007 DBLAB, Seoul National University 17

18 이진트리의표현 (3) 연결표현 노드표현 left child 클래스정의 data 부모알기어려움 parent 필드추가 right child template <class T> class Tree; // 전방선언 template <class T> class TreeNode{ friend class Tree<T>; private: T data; TreeNode<T> *leftchild; TreeNode<T> *rightchild; }; LeftChild data RightChild template <class T> class Tree { public: // 트리연산들... private: TreeNode<T> *root; }; Copyright 2007 DBLAB, Seoul National University 18

19 이진트리의표현 (4) 연결표현의예 A root B A 0 C B 0 D C 0 D 0 E 0 E 0 root A A B C B C D E F G D E 0 0 F 0 0 G 0 H I 0 H 0 0 I 0 Copyright 2007 DBLAB, Seoul National University 19

20 이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder) 순회 산술식의이진트리표현 + * E * D / C A B Copyright 2007 DBLAB, Seoul National University 20

21 중위순회 호출 currentnode 의값조치호출 currentnode 의값 조치 Driver * * / A 0 A 0 / B 0 B 0 * cout<< A cout<< / cout<< B cout<< * Driver C 0 C 0 * D 0 D 0 + E 0 E 0 cout<< C cout<< * cout<< D cout<< + cout<< E 출력 : A/B*C*D+E Copyright 2007 DBLAB, Seoul National University 21

22 레벨순서순회 큐사용 루트방문 -> 왼쪽자식방문 -> 오른쪽자식방문 + * E * D / C A B template <class T> void Tree<T>::LevelOrder() {// 이진트리의레벨순서순회 Queue<TreeNode<T>*> q; TreeNode<T> * currentnode = root; while(currentnode){ Visit(currentNode); if(currentnode->leftchild) q.push(currentnode->leftchild); if(currentnode->rightchild) q.push(currentnode->rightchild); if(q.isempty()) return; currentnode = q.front(); q.pop(); } } Copyright 2007 DBLAB, Seoul National University 22

23 스택없는순회 각노드에 parent ( 부모 ) 필드추가 스택을사용하지않아도루트노드로올라갈수있음 스레드 (thread) 이진트리로표현 각노드마다두비트필요 leftchild 필드와 rightchild 필드를루트로돌아갈수있는경로를유지하도록사용 경로상의주소스택은리프노드에저장 Copyright 2007 DBLAB, Seoul National University 23

24 만족성문제 (1) 변수 x 1, x 2,, x n 과연산자,, 으로이루어진식 변수 = { 참, 거짓 } 규칙 (1) 변수도하나의식 (2) x, y 가식일때, x, x y, x y 도식 (3) 연산순서는,, 순, 괄호사용 명제해석식 (formula of propositional calculus) 위규칙을이용해서구성한식 x x ) 1 ( 2 x3 Copyright 2007 DBLAB, Seoul National University 24

25 만족성문제 (2) 명제식의만족성 (satisfiability) 문제 식의값이 true가되도록, 변수에값을지정할수있는방법이있는가? ( x x 1 x2) ( x1 x3) 3 x 3 x 1 x 3 x 2 x 1 Copyright 2007 DBLAB, Seoul National University 25

26 만족성문제 (3) 가능한모든 true 와 false 의조합을대입 : O(g 2 n ) g : 식을계산하는데필요한시간 전체식이하나의값이될때까지서브트리를계산하면서트리를후위순회 x 1 x 2 x 3 formular T T T? T T F? T F T? T F F? F T T? F T F? F F T? F F F? Copyright 2007 DBLAB, Seoul National University 26

27 만족성문제 (4) 후위순회계산 Tree 템플릿클래스를 T=pair<Operator, bool> 로인스턴스화 enum Operator { Not, And, Or, True, False}; for n 개변수에대한 2 n 개의가능한참값조합 { 다음조합을생성 ; 그들의값을변수에대입 ; 명제식을나타내는트리를후위순회로계산 ; if(formula.data().second()){cout << current combination; return;} } cout << no satisfiable combination ; Copyright 2007 DBLAB, Seoul National University 27

28 스레드 (1) n 노드이진트리의연결표현 총링크의수 : 2n 0 링크의수 : n+1 root A B C D 0 E 0 0 F 0 0 G 0 0 H 0 0 I 0 Copyright 2007 DBLAB, Seoul National University 28

29 스레드 (2) 스레드 (Thread) 0 링크필드를다른노드를가리키는포인터로대치 if p->rightchild == 0, p->rightchild = p 의중위후속자에대한포인터 if p->leftchild = 0, p->leftchild = p 의중위선행자에대한포인터 root A B C D E F G H I Copyright 2007 DBLAB, Seoul National University 29

30 스레드 (3) 노드구조 LeftThread LeftChild data RightChild RightThread TRUE FALSE leftthread == false : leftchild 포인터 == true : leftchild 스레드 rightthread == false : rightchild 포인터 == true : rightchild 스레드 헤드노드 연결되지않은스레드제거 Copyright 2007 DBLAB, Seoul National University 30

31 스레드이진트리의메모리표현 root f - f f A f f B f f C f f D f t E t t F t t G t t H t t I t f = false; t = true Copyright 2007 DBLAB, Seoul National University 31

32 스레드이진트리의중위순회 스택을이용하지않고중위순회가능 중위순회의후속자 x->rightthread == true : x->rightchild == false : 오른쪽자식의왼쪽자식링크를따라가서 LeftThread==true 인노드 스레드이진트리에서중위후속자를찾는함수 T* ThreadedInorderIterator::Next() {// 스레드이진트리에서 currentnode 의중위후속자를반환 ThreadedNode<T> *temp = currentnode->rightchild; if(!currentnode->rightthread) while(!temp->leftthread) temp = temp->leftchild; currentnode = temp; if(currentnode == root) return 0; else return &currentnode->data; } Copyright 2007 DBLAB, Seoul National University 32

33 스레드이진트리에서의노드삽입 s 의오른쪽자식으로 r 을삽입 Copyright 2007 DBLAB, Seoul National University 33

34 우선순위큐 우선순위가가장높은 ( 낮은 ) 원소를먼저삭제 임의의우선순위를가진원소삽입가능 최대우선순위큐 template <class T> class MaxPQ{ public: virtual ~MaxPQ(){} // 가상파괴자 virtual bool IsEmpty() const = 0; // 우선순위큐가공백이면 true 를반환 virtual const T& Top() const =0; // 최대원소에대한참조를반환 virtual void Push(const T&) = 0; // 우선순위큐에원소를삽입 virtual void Pop() = 0; // 최대우선순위를가진원소를삭제 }; Copyright 2007 DBLAB, Seoul National University 34

35 우선순위큐 표현방법 무순서선형리스트 IsEmpty() : O(1) Push() : O(1) Top() : Θ(n) Pop() : Θ(n) 최대히프 IsEmpty() : O(1) Top() : O(1) Push() : O(log n) Pop() : O(log n) Copyright 2007 DBLAB, Seoul National University 35

36 최대히프의정의 최대 ( 최소 ) 트리 : 각노드의키값이그자식의키값보다작지 ( 크지 ) 않은트리. 최대히프 : 최대트리이면서완전이진트리. 최소히프 : 최소트리이면서완전이진트리 최대히프 최소히프 Copyright 2007 DBLAB, Seoul National University 36

37 최대히프에서의삽입 삽입후에도최대히프유지 새로삽입된원소는부모원소와비교하면서최대히프가되는것이확인될때까지위로올라감 (a) (b) (c) (d) Copyright 2007 DBLAB, Seoul National University 37

38 최대히프에서의삭제 루트삭제 루트와마지막위치의노드교환후노드수 -1 루트와왼쪽자식, 오른쪽자식비교 가장큰것을루트로 (a) (b) (c) Copyright 2007 DBLAB, Seoul National University 38

39 이원탐색트리 사전 (dictionary) pair< 키, 원소 > 의집합 template <class K, class E> class Dictionary{ public: virtual bool IsEmpty() const=0; // 공백이면 true 반환 virtual pair<k,e>*get(const K&) const = 0; // 지시한키값을가진쌍에대한포인터반환, 쌍이없으면 0 반환 virtual void Insert(const pair<k,e>&)=0; // 쌍을삽입, 키가중복되면관련원소갱신 virtual void Delete(const K&)=0; // 지시된키를가진쌍삭제 }; Copyright 2007 DBLAB, Seoul National University 39

40 이원탐색트리 정의 이진트리로서공백가능하고, 만약공백이아니라면 (1) 모든원소는서로상이한키를갖는다. (2) 왼쪽서브트리의키들은그루트의키보다작다. (3) 오른쪽서브트리의키들은그루트의키보다크다 (4) 왼쪽과오른쪽서브트리도이원탐색트리이다. 이원탐색트리 (a) X (b) O (c) O Copyright 2007 DBLAB, Seoul National University 40

41 이원탐색트리의탐색 k = 루트의키 : 성공적종료 k < 루트의키 : 왼쪽서브트리탐색 k > 루트의키 : 오른쪽서브트리탐색 template <class K, class E> //Driver pair<k,e>* BST<K,E>::Get(const K& k) {// 키 k 를가진쌍을이원탐색트리 (*this) 에서탐색 // 쌍을발견하면포인터반환, 아니면 0 반환 return Get(root, k); } template <class K, class E> //Workhorse pair<k,e>* BST<K,E>::Get(TreeNode <pair <K,E>>*p, const K& k) { if(!p) return 0; if(k<p->data.first) return Get(p->leftChild,k); if(k>p->data.first) return Get(p->rightChild,k); return &p->data; } Copyright 2007 DBLAB, Seoul National University 41

42 순위에의한이원탐색트리의탐색 순위 (rank) 중위순서에서의위치 leftsize = 왼쪽서브트리의원소수 + 1 순위에의한이원탐색트리의탐색 template <class K, class E> // 순위에의한탐색 pair<k,e>* BST<K,E>::RankGet(int r) {//r번째작은쌍을탐색한다. TreeNode<pair<K,E>>*currentNode = root; while(currentnode) if(r<currentnode->leftsize) currentnode = currentnode->leftchild; else if (r> currentnode->leftsize) { } r -= currentnode->leftsize; currentnode = currentnode->rightchild; } else return &currentnode->data; return 0; 1 2 leftsize key Copyright 2007 DBLAB, Seoul National University 42

43 이원탐색트리에서의삽입 x 의 key 값을가진노드를탐색 탐색이성공하면이키에연관된원소를변경 탐색이실패하면탐색이끝난지점에쌍을삽입 삽입 35 삽입 Copyright 2007 DBLAB, Seoul National University 43

44 이원탐색트리에서의삭제 리프원소의삭제 부모의자식필드에 0 을삽입. 삭제된노드반환 하나의자식을가진비리프노드의삭제 삭제된노드의자식을삭제된노드의자리에위치 을삭제 두개의자식을가진비리프노드의삭제 왼쪽서브트리에서가장큰원소나오른쪽서브트리에서가장작은원소로대체 대체된서브트리에서대체한원소의삭제과정진행 시간복잡도 : O(h) Copyright 2007 DBLAB, Seoul National University 44

45 이원탐색트리의조인과분할 (1) ThreeWayJoin(small, mid, big) 이원탐색트리 small 과 big 에있는쌍들과쌍 mid 로구성되는이원탐색트리를생성 새로운노드를하나얻어서 데이타필드 =mid 왼쪽자식포인터 =small.root 오른쪽자식포인터는 big.root O(1) TwoWayJoin(small, big) 두이원탐색트리 small 과 big 에있는모든쌍들을포함하는하나의이원탐색트리생성 small 또는 big 이공백일경우 공백이아닌것이이원탐색트리 둘다공백이아닌경우 small 에서가장큰키값을가진 mid 쌍삭제 : small ThreeWayJoin(small, mid, big) 수행 O(height(small)) Copyright 2007 DBLAB, Seoul National University 45

46 이원탐색트리의조인과분할 (2) Split(k, small, mid, big) 이원탐색트리 *this 를세부분으로분할 small 은 *this 의원소중키값이 k 보다작은모든쌍포함 mid 는 *this 의원소중키값이 k 와같은쌍포함 big 은 *this 의원소중키값이 k 보다큰모든쌍포함 k = root->data.first 인경우 small = *this 의왼쪽서브트리 mid = 루트에있는쌍 big = *this 의오른쪽서브트리 k < root->data.first 인경우 big 루트, 오른쪽서브트리 k > root->data.first small 루트, 왼쪽서브트리 Copyright 2007 DBLAB, Seoul National University 46

47 이원탐색트리 (n) 의높이 이원탐색트리의원소수 : n 최악의경우 이원탐색트리의높이 = n 키 [1,2,3,...,n] 을순서대로삽입 평균 이원탐색트리의높이 = O(log n ) 균형탐색트리 (balanced search tree) 최악의경우에도 height = O(log n ) 이되는트리 탐색, 삽입, 삭제의시간복잡도 : O(h) AVL, 2-3, 2-3-4, 레드 - 블랙 (red-black), B 트리, B+ 트리등 Copyright 2007 DBLAB, Seoul National University 47

48 승자트리 (1) 런 (run) 하나의순서순차로합병될 k 개의순서순차 각런은 key 필드에따라비감소순서로정렬 승자트리 (winner tree) 각노드가두개의자식노드중더작은노드를나타내는완전이진트리 루트노드 : 트리에서가장작은노드 리프노드 : 각런의첫번째레코드 이진트리에대한순차할당기법으로표현 Copyright 2007 DBLAB, Seoul National University 48

49 승자트리 (2) K=8 인경우의승자트리 run 1 run 2 run 3 run 4 run 5 run 6 run 7 run 8 Copyright 2007 DBLAB, Seoul National University 49

50 승자트리 (3) 승자트리에서한레코드가출력되고나서재구성 새로삽입된노드에서루트까지의경로를따라토너먼트재수행 run 1 run 2 run 3 run 4 run 5 run 6 run 7 run 8 Copyright 2007 DBLAB, Seoul National University 50

51 패자트리 (1) 승자트리의문제점 재구성할때루트까지의경로를따라형제노드들사이에토너먼트발생 형제노드는전에시행되었던토너먼트의패자들 패자트리 (loser tree) 비리프노드가패자레코드에대한포인터유지 전체토너먼트의승자를표현하기위한노드 0 첨가 토너먼트는부모와비교 형제노드에는접근하지않음 Copyright 2007 DBLAB, Seoul National University 51

52 패자트리 (2) 0 6 전체승자 Run Copyright 2007 DBLAB, Seoul National University 52

53 포리스트 포리스트 (forest) n( 0) 개의분리 (disjoint) 트리들의집합 A E G B C D F H I Copyright 2007 DBLAB, Seoul National University 53

54 포리스트를이진트리로변환 (1) 각트리를이진트리로변환 변환된모든이진트리들을루트의 rightchild 로연결 정의 만일 T 1,T 2,,T n 이트리로된포리스트라하면이포리스트에대응하는이진트리, B(T 1,T 2,,T n ) 은 n=0 이면공백 B 의루트 = T 1 의루트왼쪽서브트리 = B(T 11,T 12,,T 1m ) T 11,T 12,,T 1m 는 T1 의루트의서브트리오른쪽서브트리 = B(T 2,,T n ) Copyright 2007 DBLAB, Seoul National University 54

55 포리스트를이진트리로변환 (2) 세개의트리로구성된포리스트 A E G B C D F H 위그림의이진트리표현 I A B E C F G D H Copyright 2007 DBLAB, Seoul National University 55 I

56 포리스트순회 (1) 포리스트전위 (forest preorder) F가공백이면복귀 F의첫번째트리의루트방문 첫번째트리의서브트리들을포리스트전위순회 F의나머지트리들을포리스트전위로순회 포리스트중위 (forest inorder) F가공백이면복귀 F의첫번째트리의서브트리를포리스트중위로순회 첫번째트리의루트방문 나머지트리들을포리스트중위로순회 Copyright 2007 DBLAB, Seoul National University 56

57 포리스트순회 (2) 포리스트후위 (forest postorder) F가공백이면귀환 F의첫트리의서브트리를포리스트후위로순회 나머지트리들을포리스트후위로순회 F의첫트리의루트를방문 포리스트레벨순서순회 포리스트의각루트부터시작하여노드를레벨순으로방문 레벨내에서는왼쪽에서부터오른쪽으로차례로방문 Copyright 2007 DBLAB, Seoul National University 57

58 분리집합의표현 (1) 분리집합 (disjoint set) 의트리표현 집합의모든원소는수 0,1,2,...,n-1 이라고가정 모든집합들은쌍별로분리된다고가정 임의의두집합은어떤원소도공유하지않음 자식에서부터부모로가는링크로연결 S 1 S 2 S 3 Copyright 2007 DBLAB, Seoul National University 58

59 분리집합의표현 (2) S 1, S 2, S 3 의데이타표현 Set Name Pointer S S S 3 S 1, S 2, S 3 의배열표현 i 번째원소 : 원소 i 를포함하는트리노드 원소 : 대응되는트리노드의부모포인터 루트의 parent 는 -1 i [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] parent Copyright 2007 DBLAB, Seoul National University 59

60 분리합집합 분리합집합 (disjoint set union) S i S j = {x x 는 S i 또는 S j 에포함되는모든원소 } 두트리중의하나를다른트리의서브트리로넣음 S 1 S 2 or S 1 S 2 Copyright 2007 DBLAB, Seoul National University 60

61 SimpleUnion 과 SimpleFind 분석 변질 (degenerate) 트리 n 개의원소가각각 n 개의집합에하나씩포함된경우 S i ={i} ( 0 i < n) 초기상태 : n 개의노드들로이루어진포리스트 parent[i]= -1 (0 i n) Union(0,1), Union(1,2),Union(2,3),..., Union(n-2,n-1) n-1 번의합집합이 O(n) 시간에수행 Find(0), Find(1),..., Find(n-1) 수행 레벨 i 에있는원소에대한수행시간 : O(i) n번의 Find 수행 : O( i ) = O(n 2 ) n i 1 n-1 n-2 Copyright 2007 DBLAB, Seoul National University 61 0

62 가중규칙을적용한합집합 (1) Union(i,j) 를위한가중규칙 루트 i 를가진트리의노드수 < 루트 j 를가진트리의노드수 : j 를 i 의부모로 otherwise : i 를 j 의부모로 0 1 n n n-1 initial Union(0,1) Union(0,2) Union(0,3) 4 n n-1 Union(0,n-1) Copyright 2007 DBLAB, Seoul National University 62

63 가중규칙을이용한합집합 (2) 모든트리의루트에 count( 계수 ) 필드유지 루트의 parent 는 -1 이므로, 루트의 parent 에 count 유지 void sets::weightedunion(int i, int j) // 가중규칙을이용하여루트가 i 와 j(i j) 인집합의합을구함 // parent[i] = -count[i] 이며 parent[j] = -count[j] 임. { int temp = parent[i] + parent [j]; if (parent[i] > parent[j]) { // i 의노드수가적으면 parent[i] = j; // j 를새루트로만든다 parent[j] = temp; } else ( // j 의노드수가적거나같으면 parent[j] = i; // i 를새루트로만든다 parent[i] = temp; } } Copyright 2007 DBLAB, Seoul National University 63

64 WeightedUnion 과 WeightedFind 의분석 WeightedUnion : O(1) WeightedFind(=SimpleFind) : O(log m) 합집합의결과가 m 개의노드를가진트리의높이 log 2 m 1 u-1 개의합집합 + f 개의탐색 : O(u+f log u) 트리의노드수 u Copyright 2007 DBLAB, Seoul National University 64

65 최악의경우의트리 (1) Copyright 2007 DBLAB, Seoul National University 65

66 최악의경우의트리 (2) Copyright 2007 DBLAB, Seoul National University 66

67 붕괴규칙을이용한탐색알고리즘 붕괴규칙 (collapsing rule) 만일 j 가 i 에서루트로가는경로상에있고 parent[i] root(i) 면 parent[j] 를 root(i) 로지정 int Sets::CollapsingFind(int i) {// 원소 i 를포함하는루트를찾음 // 붕괴규칙을이용하여 i 로부터루트로가는모든노드를붕괴시킴 for (int r = i; parent[r] >= 0; r = parent[r]); // 루트를찾음 while( i!= r) { // 붕괴 int s = parent[i]; parent[i] = r; i = s; } return r; } Copyright 2007 DBLAB, Seoul National University 67

68 동치부류의응용 (1) 동치쌍 (equivalence pair) 의처리 동치부류 (equivalence class) 를집합으로간주 i j i 와 j 를포함하고있는집합찾기 다른집합에포함된경우합집합으로대체 같을때는아무작업도수행할필요없음 n 개의변수, m 개의동치쌍 초기포리스트형성 : O(n) 2m 개의탐색, 최대 min{n-1,m} 개의합집합 : O(n+mα(2m, min{n-1,m})) Copyright 2007 DBLAB, Seoul National University 68

69 동치부류의응용예제 (1) [-1] [-1] [-1] [-1] [-1] [-1] [-1] [-1] [-1] [-1] [-1] [-1] (a) Initial trees [-2] [-2] [-2] [-1] [-1] [-1] [-1] [-1] , 3 1, 6 10, and 8 9 다음의높이 -2 트리 Copyright 2007 DBLAB, Seoul National University 69

70 동치부류의응용예제 (2) [-3] [-4] [-3] [-2] (c) 7 4, 6 8, 3 5,and 2 11 다음의트리 [-5] 0 [-4] 6 [-3] (d) 11 0 다음의트리 Copyright 2007 DBLAB, Seoul National University 70

71 이진트리의개수계산 상이한이진트리 n=2 일때서로다른이진트리 : 2 개 A A and B B n=2 일때서로다른이진트리 : 5 개 Copyright 2007 DBLAB, Seoul National University 71

72 스택순열 (1) 전위순서 ABCDEFGHI, 중위순서 BCAEDGHFI 전위순서 : A 는트리의루트 중위순서 : BC 는 A 의왼쪽서브트리, EDGHFI 는오른쪽서브트리 B,C 전위순서 : B 가다음번루트 중위순서 : B 의왼쪽서브트리는공백, 오른쪽은 C A A D,E,F,G,H,I B D,E,F,G,H,I 반복 B C A C E D G F H I Copyright 2007 DBLAB, Seoul National University 72

73 스택순열 (2) 전위순열 (preorder permutation) 이진트리를전위순회에따라방문한노드들의순서 중위순열 (inorder permutation) 이진트리를중위순회에따라방문한노드들의순서 Copyright 2007 DBLAB, Seoul National University 73

74 스택순열 (3) 모든이진트리는유일한전위 - 중위순서쌍을가짐 n 개의노드를가진서로다른이진트리의수 = 1,2,...,n 의전위순열을가지는이진트리로부터얻을수있는중위순열의수 =1 부터 n 까지의수를스택에넣었다가가능한모든방법으로삭제하여만들수있는상이한순열의수 Copyright 2007 DBLAB, Seoul National University 74

75 행렬곱셈 n 개행렬의곱셈 M 1 *M 2 *M 3 *... *M n n 개의행렬을곱하는방법의수 b n b 1 =2, b 2 =1, b 3 =2, b 4 =5 Mij = M i *M i+1 *... *M j M 1n = M 1i *M i+1,n n-1 M 1i _ 계산방법수 : b i b n bibn-1, n 1 M i+1,n 계산방법수 : b n-i i 1 b n = 루트, 노드수가 b i, b n-i-1 인서브트리로된이진트리들 n-1 bn bibn-i-1, n 1그리고b0 i 1 1 Copyright 2007 DBLAB, Seoul National University 75

76 상이한이진트리의수 (1) 이진트리의수를구하는생성함수 (generating function) i B(x) b i x i 0 순환관계에의하여 xb 2 (x)=b(x)-1 B(0)=b 0 =1 을이용하여이차방정식을풀면 B(x) x 2x 이항정리를이용하여 (1-4x) 1/2 를확장하면 B(x) 1 2x 1 n 0 1/ 2 n n m 2m 1 m 4x ( 1) 2 x m 0 1/ 2 m Copyright 2007 DBLAB, Seoul National University 76

77 상이한이진트리의수 (2) B(x) 에서 x n 의계수인 b n 은아래와같다. 1/ 2 n 2n 1 ( 1) 2 n 1 1 2n n 1 n b n b n O(4 n /n 3/2 ) Copyright 2007 DBLAB, Seoul National University 77

제 1 장 기본 개념

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

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

7장

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

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

08장.트리

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

More information

4.1 관계

4.1 관계 5 장트리 트리 (tree) 정보의항목들이가지 (branch) 로연결될수있게데이터가조직되는것, 예 ) 그림 5.1 정의 : 트리는 1 개이상의노드로이루어진유한집합으로서 1 root node 2 나머지노드들은 n( 0) 개의분리집합 (disjoint set) T 1, T 2,, T n 으로분리, T i 는각각트리로서 subtree 노드 : 정보항목 + 다른노드로뻗어진가지

More information

슬라이드 1

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

More information

Microsoft PowerPoint - 제8장-트리.pptx

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

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 - lec07_tree [호환 모드]

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

More information

제 11 장 다원 탐색 트리

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

More information

Microsoft PowerPoint - chap10_tree

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

More information

슬라이드 1

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

Microsoft PowerPoint - 자료구조2008Chap07

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

More information

슬라이드 1

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

More information

Microsoft PowerPoint - 제9장-트리의응용.pptx

Microsoft PowerPoint - 제9장-트리의응용.pptx 제 9 강의. 트리의탐색 1. 이진트리탐색알고리즘 2. 쓰레드 (Threaded) 이진트리 3. 이진트리를다루는알고리즘 1 1. 이진트리탐색알고리즘 트리의탐색 (traversal) 은트리의각노드를방문하는작업을말한다. ( 왜방문할까요?) 다음과같은방법들을생각해볼수있다. 방법 1) 레벨순 : 레벨이낮은순으로방문 A B C D E F G H 3가지다른방법이나올수있다.

More information

입학사정관제도

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

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

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 - Chap5 [호환 모드]

Microsoft PowerPoint - Chap5 [호환 모드] 5.3 Binary Tree Traversal Tree 의각 node 를한번씩방문하는알고리즘 각 node 와그 node 의 subtree 들을동등하게취급하면 6 개의 traversal 조합이있다. (L: Left 로움직임, V: 노드를 visiting, R: Right 로움직임 ) (1) LVR, (2) LRV, (3) VLR, (4) VRL, (5) RVL,

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

슬라이드 1

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

More information

슬라이드 1

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

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

e-비즈니스 전략 수립

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

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

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

슬라이드 제목 없음

슬라이드 제목 없음 Chapter 5: TREES Trees Trees Def) a tree is finite set of one or more nodes such that 1) there is a special node (root) 2) remaining nodes are partitioned into n 0 disjoint trees T 1,T 2,,T n where each

More information

Microsoft PowerPoint - Chap5 [호환 모드]

Microsoft PowerPoint - Chap5 [호환 모드] 데이터구조 (hapter 5: Trees) 2011 년봄학기 숙명여자대학교정보과학부멀티미디어과학전공박영호 Index hapter 01: asic oncepts hapter 02: rrays and Structures hapter 03: Stacks and Queues hapter 04: Lists hapter 05: Trees hapter 06: Graphs

More information

Microsoft PowerPoint - 6장 탐색.pptx

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

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

제 9 장 우선순위 큐

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

More information

슬라이드 1

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

More information

슬라이드 1

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

More information

슬라이드 1

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

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

Microsoft PowerPoint Merging and Sorting Files.ppt

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

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

More information

11장 포인터

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

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

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

11강-힙정렬.ppt

11강-힙정렬.ppt 11 (Heap ort) leejaku@shinbiro.com Topics? Heap Heap Opeations UpHeap/Insert, DownHeap/Extract Binary Tree / Index Heap ort Heap ort 11.1 (Priority Queue) Operations ? Priority Queue? Priority Queue tack

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

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

설계란 무엇인가?

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

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

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

06장.리스트

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

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

PowerPoint 프레젠테이션

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

More information

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

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

More information

untitled

untitled 1. void inorder(tree_ptr ptr) { if(ptr) { inorder(ptr->left_child); printf( %d,ptr->data); inorder(ptr->right_child); 2) => A / B * C * D + E () A / B * C * D + E void preorder(tree_ptr ptr) { if(ptr)

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

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

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

(Microsoft Word - \301\337\260\243\260\355\273\347.docx) 내장형시스템공학 (NH466) 중간고사 학번 : 이름 : 문제 배점 점수 1 20 2 20 3 20 4 20 5 10 6 10 7 15 8 20 9 15 합계 150 1. (20 점 ) 다음용어에대해서설명하시오. (1) 정보은닉 (Information Hiding) (2) 캡슐화 (Encapsulation) (3) 오버로딩 (Overloading) (4) 생성자

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 Data structure: Assignment 1 Seung-Hoon Na October 1, 018 1 1.1 Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 multiline으로 구성될 수 있으며, 한 라인에는 임의의 갯수의 숫자가 순서대로 나열될

More information

슬라이드 1

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

More information

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

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

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

ABC 10장

ABC 10장 10 장구조체와리스트처리 0 자기참조구조체 자기참조구조체는자기자신의형을참조하는포인터멤버를가짐 이러한자료구조를동적자료구조라고함 배열이나단순변수는일반적으로블록을진입할때메모리할당을받지만, 동적자료구조는기억장소관리루틴을사용하여명시적으로메모리할당을요구함 10-1 자기참조구조체 10-2 자기참조구조체 예제 struct list { int struct list a; data;

More information

1장. 리스트

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

More information

PowerPoint 프레젠테이션

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

More information

1장. 리스트

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

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

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

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

JVM 메모리구조

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

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

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

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

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

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >

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

More information

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

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

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

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

PowerPoint 프레젠테이션

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

More information

Algorithms

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

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

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

PowerPoint 프레젠테이션

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

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

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

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B65FC3E2BCAEBCF6BEF7>

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B65FC3E2BCAEBCF6BEF7> 한국방송통신대학교컴퓨터과학과 2 학년자료구조 제 1 장기본개념 자료와정보 3 알고리즘 4 자료 data : 현실세계에서관찰이나측정을통해수집된값 value 이나사실 fact 특정한일을수행하는명령어들의유한집합 정보 information : 자료를처리 / 추출 process 해서얻어진유용한결과 입 출 력 : 외부에서제공되는자료가있을수있다력 : 적어도한가지결과를생성한다

More information

CH06)자료구조.hwp

CH06)자료구조.hwp 자료구조 (Data Structure) ) 자료구조의정의 프로그램에서사용하기위한자료를저장매체에저장하는방법및각자료간의관계, 처리방법을분석하는이론 자료의표현과연산의기초과학이다. 일련의자료들을조직화, 구조화시킨다. 모든자료구조에대하여연산처리가가능하다. 구현된자료구조에따라프로그램실행시간이다르다. 2) 자료구조의목적 ( 이유 ) 실제적으로물리적인저장장치는일정한규칙으로하나의선형형태로존재하기때문에그특성에맞게적절한형태로

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

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

Microsoft PowerPoint - 07-chap05-Stack.ppt

Microsoft PowerPoint - 07-chap05-Stack.ppt / 스택이란? 스택 stack): 쌓아놓은더미 hapter 5 스택 Dongwon Jeong djeong@kunsan.ac.kr Department of Informatics & Statistics 학습목표 스택의개념이해 스택의동작원리이해 배열과연결리스트를이용한스택구현 스택응용프로그램 스택의특징 후입선출 LIFO:Last-In First-Out) 가장최근에들어온데이터가가장먼저나감.

More information

Microsoft PowerPoint - 제5장-스택의응용.pptx

Microsoft PowerPoint - 제5장-스택의응용.pptx 제 5 강의. 스택과큐의응용 학습목차 1. 후위표기법 2. 스택을이용한후위표기법변환 3. 스택을이용한후위표기법의계산 1 1. 후위표기법 ( 정의 ) 후위표기법 (postfix notation) : 후위표기법은연산자를피연산자의뒤에놓는방법이다. 스택의응용의예이며수식의계산은계산기에서나컴퓨터프로그래밍을할때자주나타난다. x = a/b-c+d*e-a*c 다음의수식을사람이계산한다고할때계산하는과정을살펴보자.

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

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

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