Microsoft PowerPoint - 자료구조2008Chap07
|
|
- 재연 정
- 6 years ago
- Views:
Transcription
1 제 7 장트리 7.1 트리의정의 1 Tree 비선형구조, 다차원적구조 원소마다다음에여러개의원소가존재 하나이상의노드로구성된유한집합 정의1 : 루트 (root) 라는특별한노드를가지는사이클이존재치않는그래프 (acyclic graph) 정의 2 : 하나이상의노드로구성된유한집합 루트 (root) 라는특별한노드존재 나머지노드들은다시각각의트리이면서교차하지않는분리집합 (disjoint set) T 1, T 2,, T m (m 0) 으로분할 (partition) 분할된이들은루트의부트리 (subtree) 라고한다.
2 7.1 트리의정의 (2) 2 J J K L M K L M 그림 7-1 트리의구조 그림 7-2 트리가아닌구조 트리구조와가족관계도 3 할아버지할머니 큰아버지큰어머니 아버지어머니 고모 사촌형 나아내동생 아들 그림 7.1 가족관계도
3 7.2 트리에사용되는용어들 (1) 4 진짜나무와자료구조의트리를비교하면나무를거꾸로세워놓은격이다. root( 뿌리 ) branch( 가지 ) 루트 (Root) : 트리의노드중하나, 가장상위레벨 x) Tree T 에서 Level 1 노드 (Node) : 정보가저장되는곳, 자료구조의원소 x) Tree T 에서,, 등 leaf( 잎 ) 단말노드 (Leaf Node) : 차수가 0 인노드 or 하부에가지가없는노드 x) Tree T 에서 K, L,,,,, M 등 비단말노드 (Non-Terminal Node) : 차수가 0 이아닌노드 x) Tree T 에서,,,,, J 등 7.2 트리에사용되는용어들 (2) 5 부트리 (Subtree) : 루트와루트에연결된가지들을제거한다면한개의큰트리구조는몇개의작은트리구조로나뉨. 이런트리들을부트리라고함. Level 1 x) Tree T 에서 T 1, T 2, T 3 노드, 노드, 노드 는 T 1, T 2, T 3 의루트 Level 2 차수 (egree) : 각노드를루트노드로하는부트리의수 or 각노드가지닌아래쪽가지의숫자차수 = 노드의차수 x) Tree T 에서노드 의차수는 3, 노드 의차수는 1, 노드 의차수는 0 트리의차수 : 각노드의차수중최대치 x) Tree T 에서트리의차수는 3 인트리 J K L M Subtree T 2 Subtree T 1 Subtree T 3 Tree T Level 3 Level 4
4 7.2 트리에사용되는용어들 (3) 6 자식노드 (hild Node) : 임의의노드에연결된바로밑레벨의노드, 이임의의노드는자식노드쪽에서보다면부모노드 x) Tree T에서 와 는 의자식노드 형제노드 (Sibling Node) : 동일한부모노드를갖는노드 x) Tree T 에서 와, 와 와 J 에서의관계 조상노드 (ncestor Node) : 루트노드에서부터임의노드에까지 path( 경로 ) 를형성하는노드들의집합 x) Tree T 에서 M 의조상노드는,, J 부모노드 (Parent Node) : 임의노드가연결된레벨의높은노드, 자신을파생시킨노드 x) Tree T 에서, 에대하여 는부모노드 숲 (orest) : 분리된트리들의집합. Tree T 에서루트를삭제한다면 3 개의부트리로이루어진 forest. 후손노드 (escendant Node) : 임의의노드를루트로하는부트리의모든노드의집합 x) Tree T 에서노드 의후손은,, J, M J 레벨 (Level) : 루트를최상위레벨인 1 로하고, 레벨 L 인노드의자식노드레벨은 L+1. x) Tree T 에서노드 의자식노드레벨은 3 K L M 트리의레벨 7 Level 1 Level 2 J Level 3 K L M Level 4 그림 7-6 트리의레벨
5 7.3 트리를표현하는법 8 표현하는방법계층구조로표현하는법 루트노드로부터시작해서노드와가지들로표현 가장일반적인표현중첩된괄호 (nested parenthesis) 집합으로표현 (nested set) 들여쓰기 (indentation) 7.3 트리를표현하는법 (2) 9 ( ( ( (K L) ) () ( J (M)))) (1) 괄호로표현하는방법 K L J M... K. L J. M. (2) 집합으로표현하는방법 (3) 들여쓰기로표현하는방법 그림 7.9 트리를표현하는여러가지방법들
6 7.3 트리를표현하는법 (3) 10 컴퓨터에서트리표현 2 가지 배열에의한방법 연결리스트에의한방법 7.4 이진트리 ( 정의 ) 11 inary Tree 정의 노드의유한집합 공집합이거나 루트와왼쪽부트리및오른쪽부트리라고불리는 2개의서로분리된이진트리로구성 모든차수가 2를넘지않는특수한트리, 자식노드의순서를구별 오른쪽부트리가공집합인이진트리 왼쪽부트리가공집합인이진트리 서로다른이진트리
7 7.4.1 이진트리의종류 (1) 12 포화이진트리 (ull inary Tree) 모든레벨의노드가꽉차있는상태의트리. 레벨이 k일때 2 k 1 개의노드를갖는다. 레벨이 3인포화이진트리 레벨 3에서는 = 2 2 = 4개의노드를 레벨 2에서는 = 2 1 = 2개의노드를가진다. 이진트리노드의개수 13 레벨 해당레벨의노드개수 전체노드개수 k 2 k 1 2 k -1
8 이진트리의성질 14 inary Tree의성질이진트리의레벨 k에서의최대노드의수는 2 k-1 이다. 루트는레벨 1, 최대노드수는 =2 0 =1이다. 레벨 2에서의최대노드수는 2 1 =2개, 레벨 3에서는 4개 높이가 k 인이진트리의최대노드의수는 2 k 1 이다. 이진트리에서리프노드의수를 n, 차수가 2 인노드의수를 m 이라할때 n=m+1 은항상성립 이진트리의종류 (2) 15 완전이진트리 (omplete inary Tree) 포화이진트리중에서마지막레벨 (leaf level) 에서의노드는꽉차있지않고왼쪽에서부터어느정도까지는차례대로채워져있는상태의트리. 높이가 k일때 1부터 k-1까지의노드는모두차있고 k레벨은왼쪽부터차례로차있는이진트리모든포화이진트리는완전이진트리라고할수있다. but, 그역은성립하지않는다. J K
9 7.4.1 이진트리의종류 (3) 16 사향이진트리 (Skewed inary Tree) 분명이진트리의특성을가지고있으나, 공교롭게한쪽의모든노드가공백인상태. 단일연결리스트와같은모양, 검색시간도 O(n) 으로같다. 왼쪽사향트리 (left skewed binary tree) 오른쪽링크가 null, 왼쪽방향으로기울어진모양 오른쪽사향트리 (right skewed binary tree) 왼쪽링크가 null, 오른쪽방향으로기울어진모양 이진트리의표현 17 배열에의한표현 어떠한이진트리도배열로표현, 배열의임의노드를쉽게 access 가능 단점 이진트리를배열로표현하면공간의낭비심하다 but, 포화트리 or 완전트리일경우에는낭비가없다. k레벨의트리는 2 k -1개의기억공간이필요 사향트리의경우는이중에서사용되는것은 k개뿐 (worst case) 배열자체가가진단점 노드의삽입과삭제시배열의원소들이이동되어야만한다.
10 배열을표현한포화이진트리 J K J K 배열을표현한완전이진트리 N
11 배열을표현한일반이진트리 20 N 배열을이용한구현 (2) 21 n개의노드로구성된완전이진트리의배열표현시특성 i번노드의부모의위치는 floor((i-1)/2) i번째노드의왼쪽자식노드의위치는 2i+1 i번째노드의오른쪽자식노드의위치는 2(i+1)
12 연결리스트로구현 (1) 22 Linked List 로표현 하나는데이터필드, 두개는포인터필드 포인터필드는각각왼쪽자식노드와오른쪽자식노드를가리킨다. struct tnode { char data; struct tnode *left, *right; ; typedef struct tnode TNO; left data right left data right 연결리스트로포화이진트리 23 포화이진트리를연결리스트로표현
13 연결리스트로완전이진트리 24 완전이진트리를연결리스트로표현 J K J K 연결리스트로사향이진트리 25 사향이진트리를연결리스트로표현
14 7.5 일반트리를이진트리로전환 26 일반트리를이진트리로변환 형제노드들을수평으로연결 부모노드에서자식노드로연결된가지들중맨왼쪽의가지만을제외하고는연결을끊는다이진트리모양으로재구성숲 (forest) 를이진트리로변환 각루트노드를수평으로연결 각트리의형제노드들을수평으로연결 부모노드에서자식노드로연결된가지들중에서맨왼쪽의가지만을제외하고는연결을끊는다이진트리모양으로재구성 7.5 일반트리를이진트리로전환 (2) 27 일반트리를이진트리로변환하기 J J K L M K L M 일반트리 Sibling 들을연결하고, 부모노드와의연결을끊는다
15 7.5 일반트리를이진트리로전환 (2) 28 일반트리를이진트리로변환하기 J J K L M N K L M N 일반트리 형제노드들을연결하고, 부모노드와의연결을끊는다 7.5 일반트리를이진트리로전환 (3) 29 K L M J N 이진트리로재구성
16 일반트리를이진트리로전환 (4) 숲 (forest) 을이진트리로변환하기 숲 (forest) Root 와 Sibling 들을연결하고, 부모노드와의연결을끊는다 N O J L K M N O J L K M 일반트리를이진트리로전환 (5) 숲 (forest) 을이진트리로변환하기 (2) J K N L M O N O J L K M 이진트리로재구성
17 7.6 이진트리운행 32 Tree Traverse 트리의각노드를한번씩방문한다는것순서적으로트리를방문해서리스트로만든다는것 2 차원적비선형구조를 1 차원적선형구조로만들수있음을뜻함. 루트노드를어떤순서로방문하는가에따른 3가지운행방법전위운행법 (preorder traversal) 중위운행법 (inorder traversal) 후위운행법 (postorder traversal) 운행방법의수 (3!) 순서고려시운행방법 (preorder) -- (inorder) --(postorder) 7.6 (1) 전위운행법 33 Preorder traversal 특정한노드에서자기자신이위치한노드 ( 루트노드 ) 를방문왼쪽서브트리를모두방문오른쪽서브트리들을방문 모든노드에재귀적으로적용, 모든노드를한번씩방문 void preorder(tno *p) { if(p!= NULL) { printf( %c, p->data); preorder(p->left); preorder(p->right); ; 1 2 J K 3 4 L M N O
18 7.6 (2) 중위운행법 34 norder traversal 특정한노드에서자신의왼쪽서브트리를모두방문자기자신이위치한노드 ( 루트노드 ) 를방문오른쪽서브트리들을방문 모든노드에재귀적으로적용, 모든노드를한번씩방문 4 void inorder(tno *p) { if(p!= NULL) { inorder(p->left); printf( %c, p->data); inorder(p->right); ; J K L M N O 7.6 (3) 후위운행법 35 Postorder traversal 특정한노드에서자신의왼쪽서브트리를모두방문오른쪽서브트리들방문자기자신이위치한노드 ( 루트노드 ) 를방문 모든노드에재귀적으로적용, 모든노드를한번씩방문 void postorder(tno *p) { if(p!= NULL) { postorder(p->left); postorder(p->right); printf( %c, p->data); ; J K L M N O
19 7.6 (4) 레벨운행법 36 Levelorder traversal 전위, 중위, 후위운행법과는차별되는운행법레벨순위에따라운행하는방법루트로시작해서각레벨을순차적으로방문 각레벨에서는왼쪽에서오른쪽으로순차적으로방문 전위, 중위, 후위운행법이 Stack 형태이용 레벨운행법은 Queue 형태이용 그래프에서는너비우선검색 (breadth first search) 와비슷하게운행되어진다. 7.6 (5) 레벨운행법 37 예제 inorder traverse: */-*+ preorder traverse: */*-+ postorder traverse: *-/+* * / + * -
20 중위법을이용해서트리그리기 e -2 c f -3 b d g -4 a h 이진검색트리 (ST) 39 inary Search Tree의특성이진트리중모든노드의값이다르다임의의노드의키값>왼쪽서브트리의노드들의키값임의의노드의키값<오른쪽서브트리의노드들의키값모든노드에대하여재귀적으로적용
21 이진검색트리 40 그림 7.30 이진검색트리 그림 7.30 이진검색트리 노드 를찾아가는과정 이진검색트리의예
22 ST 소스코드 ( 비재귀적 ) 42 /*************************************************** /* ST search function /***************************************************/ TNO *search(tno *p, char key) { TNO *temp; temp = p; while( temp!= NULL){ if(temp->data == key) return(temp); else if(temp->data > key) temp = temp->left; else temp = temp->right; return(null); ST 소스코드 ( 재귀적 ) 43 /*************************************************** /* ST search function /***************************************************/ TNO search(tno ptr, data key){ if(ptr == NULL)exit(0) // 검색실패 if(key == ptr->data)return ptr; // 검색성공 if(key < ptr->data) return search(ptr->left, key); else return search(ptr->right, key);
23 7.8 노드삽입 (1) 44 inary Search Tree 의노드삽입 트리를탐색, 동일한키값을갖는원소가트리내에있는지확인탐색이실패하면탐색이실패한끝지점에해당원소삽입 노드 9 삽입전 10 노드 9 삽입후 루트원소 10 > 노드 9 2. 노드 9 > 왼쪽서브트리의루트노드 노드 9 > 오른쪽자식노드인 7, 오른쪽서브트리로이동 노드 7 은터미널노드, 노드 7 의오른쪽자식노드에노드 9 를삽입 7.8 노드삽입소스코드 45 // 트리 1.c -- inary Search Tree 삽입 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <conio.h> struct tnode{ char data; struct tnode *left, *right; ; typedef struct tnode TNO; /*************************************************** /* insert /***************************************************/ TNO *insert(tno *p, char data) { TNO *temp1,*temp2; if(p == NULL) { p = (TNO *) malloc(sizeof(tno)); // 루트생성 if(p == NULL) { printf("memory rror! n"); exit(0); p->data = data; p->left = NULL; p->right = NULL; else{ temp1 = p; while(temp1!= NULL){ temp2 = temp1; if( temp1 ->data > data) temp1 = temp1->left; else temp1 = temp1->right;
24 7.8 노드삽입소스코드 (2) 46 if( temp2->data > data) { temp2->left =(TNO*)malloc(sizeof(TNO)); // 왼쪽자식생성 temp2 = temp2->left; if(temp2 == NULL) { printf("memory rror! n"); exit(0); temp2->data = data; temp2->left=temp2->right = NULL; else { temp2->right=(tno*)malloc(sizeof(tno)); // 오른쪽자식생성 temp2 = temp2->right; if(temp2 == NULL){ printf("memory rror! n"); exit(0); temp2->data = data; temp2->left = NULL; temp2->right = NULL; return(p); 7.8 노드삽입소스코드 (3) 47 /*************************************************** /*************************************************** /* ST search function /* inorder를변형하여괄호로트리를표현한다. /***************************************************/ /***************************************************/ TNO *search(tno *p, char key) { TNO *temp; temp = p; while( temp!= NULL){ if(temp->data == key) return(temp); else if(temp->data > key) temp = temp->left; else temp = temp->right; return(null); void inorder1(tno *p) { if(p!= NULL){ printf(" ("); inorder1(p->left); printf("%c",p->data); inorder1(p->right); printf(") ");
25 7.8 노드삽입소스코드 (4) 48 /*************************************************** /* ST search function /***************************************************/ TNO *search(tno *p, char key) { TNO *temp; temp = p; while( temp!= NULL){ if(temp->data == key) return(temp); else if(temp->data > key) temp = temp->left; else temp = temp->right; return(null); /*************************************************** /* main /***************************************************/ void main() { TNO *root = NULL; char ch; int n; printf("nter the number of nodes n"); scanf("%d",&n); while (n > 0) { printf("nter the data value n"); ch = getche(); printf(" n"); root = insert(root,ch); n--; printf(" n inorder : "); inorder(root); printf(" n inorder : "); inorder1(root); printf(" n"); 7.4 노드삽입실행결과 49 교과서예제문제를이용하여실행시킨결과화면
26 7.9 노드삭제 (1) 50 /* 자식노드의개수가 0 인경우 */ if(current->left == NULL && current->right == NULL){ if(parent->left == current) parent->left = NULL ; else parent->right = NULL; free(current); 그림 7.34 자식노드의개수가 0 이며부모노드의왼쪽자식인노드의삭제 그림 7.34 자식노드의개수가 0 이며부모노드의왼쪽자식인노드의삭제 7.9 노드삭제 (2) 51 /* 왼쪽자식 1개만있는경우 */ if(current->left!= NULL && current->right == NULL){ if(parent->left == current) // 부모의왼쪽자식 (1) 번경우 parent->left = current->left ; else // 부모의오른쪽자식 (2) 번경우 parent->right = current->left; current->left = NULL; free(current); 그림 7.35 왼쪽자식 1 개만있고부모노드의왼쪽자식인노드의삭제 그림 7.36 왼쪽자식 1 개만있고부모노드의오른쪽자식인노드의삭제
27 7.9 노드삭제 (3) 52 /* 오른쪽자식 1개만있는경우 */ if(current->left == NULL && current->right!= NULL){ if(parent->left == current) // 부모의왼쪽자식 (3) 번경우 parent->left = current->right; else // 부모의오른쪽자식 (4) 번경우 parent->right = current->right; current->right = NULL; free(current); 그림 7.37 오른쪽자식 1 개만있고부모노드의왼쪽자식인노드삭제 그림 7.38 오른쪽자식 1 개만있고부모노드의오른쪽자식인노드삭제 7.9 노드삭제 (4) 53 그림 7.39 자식노드의개수가 2 이며부모노드의왼쪽자식인노드를삭제 그림 7.39 자식노드의개수가 2 이며부모노드의왼쪽자식인노드를삭제
28 7.9 노드삭제 (5) 54 그림 7.40 자식노드의개수가 2 이며부모노드의오른쪽자식인노드를삭제 그림 7.40 자식노드의개수가 2 이며부모노드의오른쪽자식인노드를삭제 삭제실행화면 55
29 노드삭제 ( 치환에의한 ) 56 그림 7.41 자식노드의개수가 2 인경우 (2) 그림 7.41 자식노드의개수가 2 인경우 노드삭제프로그램 57 Modified Version Tree 가공백이거나 Key 가존재하지않으면 NULL 을반환하고, 그렇지않으면제거될노드와부모노드에대한포인터를반환한다. tree_pointer modified_search1(tree_pointer ptr, tree_pointer parent, int key) { while(ptr) { if(key == ptr->data) return ptr; parent = ptr; if(key < ptr->data) ptr = ptr->left_child; else ptr = ptr->right_child; return NULL;
30 노드삭제프로그램 58 void delete_node(tree_pointer *node, int key) { tree_pointer parent, child, substitute, temp; int x; temp = modified_search1(node, parent, key); /* 제거되는노드의부모노드에대한포인터반환 */ if(!temp) { fprintf(stderr, key is not in the tree n ); exit(1); if((temp->left_child == NULL) && (temp->right_child == NULL)) { /* ase 1 */ if(parent->left_child == temp) parent->left_child = NULL; else parent->right_child = NULL; free(temp); 노드삭제프로그램 59 else { if((temp->left_child == NULL) (temp->right_child == NULL)) { /* case 2 */ child = findchild(node, temp); if(parent->left_child == temp) parent->left_child = child; else parent->right_child = child; free(temp); else { /* ase 3-2 */ substitute = insucc(node, temp); x = temp->data; temp->data = substitute->data; substitute->data = x; delete_node(temp->right_child, substitute->data);
31 7.10 스레드이진트리 60 Thread inary Tree 널포인터를트리의운행에이용하는것 n개의노드를가진이진트리의경우왼쪽링크와오른쪽링크를가지므로총 2n개의링크가존재 트리의특성상이중 n-1개의링크만필요, 나머지 n+1개의링크는널포인터가된다. 스레드구성을위한규칙 임의의노드의널포인터가왼쪽포인터이면그노드이전에운행할노드의주소를지적하도록그포인터값을설정 임의의노드의널포인터가오른쪽포인터이면그노드이후에운행할노드의주소를지적하도록그포인터값을설정 7.10 스레드이진트리 (2) 61 중위운행법을위해서스레드된이진트리 중위운행법을위해서스레드된이진트리
32 7.10 스레드이진트리 (3) 62 전위운행법을위해서스레드된이진트리 그림 7.43 전위운행법을위해서스레드된이진트리 7.10 스레드이진트리 (4) 63 후위운행법을위해서스레드된이진트리 그림 7.44 후위운행법을위해서스레드된이진트리
33 7.10 스레드이진트리 (5) 64 일반포인터와스레드포인터의구별 left_thread 와 right_thread 라는변수를선언하면구별가능 left_thread와 right_thread가참일경우스레드포인터 left_thread와 right_thread가거짓일경우일반포인터 left_threa d left_child ata right_child 위의노드구조 언어로표현 typedef struct thread_tree *thread_pointer typedef struct thread_tree { int left_thread; thread_pointer left_child; int data; thread_pointer right_child; int right_thread; ; right_thre ad 7.10 스레드이진트리 (6) 65 그림 7.45 중위운행스레드이진트리의포인터 그림 7.45 중위운행스레드이진트리의포인터
34 7.10 스레드이진트리 (7) 66 어떤노드 ptr 에서 ptr->right_thread = TRU 이면 ptr 의 inorder successor 는 ptr->right_child 가된다. 만일어떤노드 ptr 에서 ptr->right_thread = LS 이면 ptr 의 inorder successor 는 ptr 의오른쪽자식에서시작하여왼쪽자식링크를따라 left_thread = TRU 인노드에도달할때까지찾으면된다 스레드이진트리 (8) 67 thread_pointer insucc(thread_pointer tree) { thread_pointer temp; temp = tree->right_child; if(!tree->right_thread) while(!temp->left_thread) temp = temp->left_child; return temp; void thread_inorder(thread_pointer tree) { thread_pointer temp = tree; for(;;) { temp = insucc(temp); if(temp == tree) break; printf( %c, temp->data);
35 7.10 스레드이진트리의노드삽입 68 Threaded binary tree의임의의노드에새로운오른쪽자식노드의삽입 ase 1: parent의오른쪽 sub tree가공백인경우 parent->right_thread를 LS로변경한다. child->left_child와 child->right_child를 TRU로치환한다. child->left_child가 parent를가리키게한다. child->right_child를 parent->right_child로치환한다. parent->right_child가 child를가리키게한다. ase 2: parent 의오른쪽 Sub tree 가공백이아닌경우 child의중위선행자는parent가된다. child는 parent의전중위후속자였던노드의중위선행자가된다 스레드이진트리의노드삽입 69 root root parent parent child child [ 삽입전 ] [ 삽입후 ]
36 7.10 스레드이진트리의노드삽입 70 root root parent parent child X [ 삽입전 ] child X [ 삽입후 ] 7.10 스레드이진트리의노드삽입 71 void insert_right(thread_pointer parent, thread_pointer child) { thread_pointer temp; child->right_child = parent->right_child; child->right_thread = parent->right_thread; child->left_child = parent; child->left_thread = TRU; parent->right_child = child; parent->right_thread = LS; if(!child->right_thread) { temp = insucc(child); temp->left_child = child;
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 informationchap 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 information7장
CHAP 7: 트리 C 로쉽게풀어쓴자료구조 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현파일시스템인공지능에서의결정트리 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산 1 팀생산 2 팀 * 예제 : 책그림 7-2, 7-3, 7-4 트리의용어 노드 (node): 트리의구성요소 루트
More information슬라이드 1
CHAP 7: 트리 C 로쉽게풀어쓴자료구조 생능출판사 2005 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 대표이사 응용분야 : 계층적인조직표현 총무부 영업부 생산부 파일시스템 인공지능에서의결정트리 전산팀구매팀경리팀생산 1 팀생산 2 팀 트리의용어 노드 (node): 트리의구성요소 루트 (root): 부모가없는노드
More information08장.트리
---------------- T STRUTURES USING ---------------- HPTER 트리 /29 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모-자식관계의노드들로이루어짐 응용분야 : 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀 생산 팀 생산 2 팀 (a) 회사의조직도 내문서 동영상음악사진 영화예능드라마 여행 (b) 컴퓨터의폴더구조
More informationMicrosoft PowerPoint - 제8장-트리.pptx
제 8 강의. 트리 (Tree) 자료구조 1. 트리의개념 2. 이진트리 3. 이진트리의저장 1 트리자료구조필요성연결리스트의삽입삭제시데이터를이동하지않는장점을살리자. 연결리스트의검색시노드의처음부터찾아가야하는단점을보완하자. 데이터를중간부터찾아가는이진검색의장점을이용하자. 연결리스트의포인터를리스트의중간에두는방법? ptr 10 23 34 42 56 검색을중간부터시작하여좌우중하나로분기,
More information제 1 장 기본 개념
이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder)
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 informationMicrosoft 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 informationMicrosoft PowerPoint - chap10_tree
Chap. 10 : Tree 2007 학년도 2 학기 1. 개요 재귀 (recursion) 의정의, 순환 ~ 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 ~ 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 ~ 정의자체가순환적으로되어있는경우에적합한방법 ~ 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색 -2-
More information슬라이드 1
CHAP 7: 트리 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 리스트, 스택, 큐등은선형구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현 컴퓨터디스크의디렉토리구조 인공지능에서의결정트리 (decision tree) 회사의조직 파일디렉토리구조 결정트리 ( 예 ) 골프에대한결정트리 트리의용어 노드 (node): 트리의구성요소
More informationMicrosoft PowerPoint - lec07_tree [호환 모드]
Tree 2008학년도 2학기 kkman@sangji.ac.krac kr -1- 트리 (Tree) 1. 개요 ~ 계층적인구조를나타내는비선형 (Non-linear) 자료구조 ~ 트리는부모 - 자식관계의노드로구성 ~ 응용분야 계층적인조직표현 파일시스템 인공지능에서의결정트리 -2- 트리자료구조를사용하는이유? ~ 다른자료구조와달리비선형구조. ~ 정렬된배열 탐색은빠르지만
More information05_tree
Tree Data Structures and Algorithms 목차 트리의개요 이진트리의구현 이진트리의순회 (Traversal) 수식트리 (Expression Tree) 의구현 Data Structures and Algorithms 2 트리의개요 Data Structures and Algorithms 3 트리의접근과이해 트리는계층적관계 (Hierarchical
More informationMicrosoft PowerPoint - 제9장-트리의응용.pptx
제 9 강의. 트리의탐색 1. 이진트리탐색알고리즘 2. 쓰레드 (Threaded) 이진트리 3. 이진트리를다루는알고리즘 1 1. 이진트리탐색알고리즘 트리의탐색 (traversal) 은트리의각노드를방문하는작업을말한다. ( 왜방문할까요?) 다음과같은방법들을생각해볼수있다. 방법 1) 레벨순 : 레벨이낮은순으로방문 A B C D E F G H 3가지다른방법이나올수있다.
More information슬라이드 1
CHAP 7: 트리 yicho@gachon.ac.kr 1 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 리스트, 스택, 큐등은선형구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현 컴퓨터디스크의디렉토리구조 인공지능에서의결정트리 (decision tree) 2 2 회사의조직 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산
More information슬라이드 1
Data Structure Chapter 7. 트리 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 트리의개념 트리 (Tree) 트리 : 계층적인구조를나타내는자료구조 리스트, 스택, 큐등은선형구조 정의 (1) 하나의루트 (root) 노드 (2) 다수의서브트리 (subtree) 트리는부모-자식관계의노드들로이루어짐
More informationuntitled
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입학사정관제도
자료구조 강의노트 교재 : C 로배우는쉬운자료구조 ( 개정판 ) 출판사 : 한빛미디어 (2011 년 3 월발행 ) 저자 : 이지영 소프트웨어학과원성현교수 1 8 장트리 소프트웨어학과원성현교수 93 1. 트리 트리개요 트리 (tree) 란? 리스트, 스택, 큐등은선형자료구조 (linear data structure) 인것에반해서트리는계층 (hierarchy)
More informatione-비즈니스 전략 수립
트리 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents 학습목표 트리의개념을이해한다. 이진트리의자료구조를알아본다. 이진트리에서의순회를이해한다. 이진탐색트리의개념을이해하고연산방법을이해한다. 히프의자료구조를이해한다. 내용 트리 이진트리 이진트리의구현 이진트리의순회 이진탐색트리 히프 2/104 1. 트리 트리 (tree) 원소들간에 1:
More informationMicrosoft 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 informationMicrosoft 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 informationPowerPoint 프레젠테이션
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제 11 장 다원 탐색 트리
제 11 장 다원탐색트리 Copyright 07 DBLB, Seoul National University m- 원탐색트리의정의와성질 (1) 탐색성능을향상시키려면메모리접근횟수를줄여야함 탐색트리의높이를줄여야함 차수 (degree) 가 2보다큰탐색트리가필요 m- 원탐색트리 (m-way search tree) 공백이거나다음성질을만족 (1) 루트는최대 m 개의서브트리를가진다.
More informationChapter 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 informationCh.1 Introduction
Tree & Heap SANGJI University Kwangman Ko (kkman@sangji.ac.kr) 트리개요 트리 (Tree) ~ 계층적인구조를나타내는비선형 (Non-linear) 자료구조 ~ 트리는부모-자식관계의노드로구성 ~ 응용분야 계층적인조직표현 파일시스템 인공지능에서의결정트리 kkman@sangji.ac.kr 2 트리자료구조를사용하는이유?
More informationo 경로 (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 informationChapter 08. 트리(Tree)
윤성우의열혈자료구조 : C 언어를이용한자료구조학습서 Chapter 08. 트리 (Tree) Introduction To Data Structures Using C Chapter 08. 트리 (Tree) Chapter 08-1: 트리의개요 트리의접근과이해 트리는계층적관계 (Hierarchical Relationship) 를표현하는자료구조이다. 트리의예 트리의예
More information06장.리스트
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 리스트 1/28 리스트란? 리스트 (list), 선형리스트 (linear list) 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : ( ㄱ, ㄴ,, ㅎ ) 카드 :
More informationA 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 information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >
제 7 강의. 고급연결리스트 1. 원형연결리스트 2. 이중연결리스트 3. 연결리스트알고리즘 1 1. 원형연결리스트 (Circularly Linked Lists) 원형연결리스트란? 연결리스트의맨끝노드를첫번째노드와연결시켜서원형으로만든리스트 단순연결리스트 (Singly Linked List) 불편한점 - 연결리스트의노드포인터를알고있을때첫번째노드는바로찾아갈수있지만마지막노드는리스트전체를따라가면서끝을찾아가야한다
More informationMicrosoft 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 informationChapter 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 information4.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
CHAP 8: 우선순위큐 yicho@gachon.ac.kr 1 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터
More informationMicrosoft PowerPoint - 자료구조2008Chap06
제 6 장연결리스트 연결리스트개요 2 일정한순서를가지는데이터요소들을표현하는방법중의하나이다. 배열과다르게데이터요소들의논리적인순서만유지되고기억장소내에서는각데이터요소들은논리적인순서와는상관없는임의의위치를가지도록하는자료구조이다. 연결리스트에서는각데이터요소들이기억장소내의어떤위치에어떤항목이있는지를표시해주어야한다. 이를위해데이터요소에는데이터값 (value) 뿐만아니라위치정보
More information슬라이드 1
Data Structure Chapter 8. 우선순위큐 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 우선순위큐추상데이터타입 우선순위큐 우선순위큐 (priority queue) 정의 : 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게됨 스택이나 FIFO 큐를우선순위큐로구현할수있음
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information슬라이드 1
6-1 리스트 (list) 란순서를가진항목들을표현하는자료구조 리스트를구현하는두가지방법 배열 (array) 을이용하는방법 구현간단 삽입, 삭제시오버헤드 항목의개수제한 연결리스트 (linked list) 를이용하는방법 구현복잡 삽입, 삭제가효율적 크기가제한되지않음 6-2 객체 : n 개의 element 형으로구성된순서있는모임 연산 : add_last(list,
More information정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2
13. 탐색트리 AVL 트리, B- 트리, 2-3-4 트리 정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2 이진탐색트리의예 3 BST 의최선과최악의경우
More informationPowerPoint 프레젠테이션
10 장. 트리 트리 리스트나스택, 큐가데이터집합을한줄로늘어세운선형자료구조라면트리는두갈래로나누어세운비선형구조이다. 비선형구조를고안한동기는바로이구조가지닌효율성때문이다. 즉, 삽입, 삭제, 검색이라는주작업에대해서선형구조보다나은시간적효율을보일수있다. 학습목표 트리와관련된용어를정확히이해한다. 이진트리의세가지순회방법의차이점을이해한다. 포인터로구현한이진탐색트리의탐색,
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More informationABC 10장
10 장구조체와리스트처리 0 자기참조구조체 자기참조구조체는자기자신의형을참조하는포인터멤버를가짐 이러한자료구조를동적자료구조라고함 배열이나단순변수는일반적으로블록을진입할때메모리할당을받지만, 동적자료구조는기억장소관리루틴을사용하여명시적으로메모리할당을요구함 10-1 자기참조구조체 10-2 자기참조구조체 예제 struct list { int struct list a; data;
More information5 장 트 리
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 informationMicrosoft PowerPoint - 6장 탐색.pptx
01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리, 그래프등 탐색키데이터 순차탐색 (sequential
More informationChap 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 informationLab 4. 실습문제 (Circular singly linked list)_해답.hwp
Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular
More informationPowerPoint 프레젠테이션
트리 10 장. 트리 리스트나스택, 큐가데이터집합을한줄로늘어세운선형자료구조라면트리는두갈래로나누어세운비선형구조이다. 비선형구조를고안한동기는바로이구조가지닌효율성때문이다. 즉, 삽입, 삭제, 검색이라는주작업에대해서선형구조보다나은시간적효율을보일수있다. 학습목표 트리와관련된용어를정확히이해한다. 이진트리의세가지순회방법의차이점을이해한다. 포인터로구현한이진탐색트리의탐색,
More information<4D F736F F F696E74202D FBFACB0E120C0DAB7E1B1B8C1B6205BC8A3C8AF20B8F0B5E55D>
연결자료구조 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents 학습목표 연결자료구조를이해한다. 순차자료구조와연결자료구조의차이와장단점을알아본다. 연결리스트의종류와특징을알아본다. 연결자료구조를이용한다항식의덧셈연산방법을알아본다. 내용 배열연결자료구조를이해한다. 순차자료구조와연결자료구조의차이와장단점을알아본다. 연결리스트의종류와특징을알아본다.
More information리스트 (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 information1장. 리스트
01. 링크드리스트 02. 더블링크드리스트 03. 환형링크드리스트 배열과는달리유연하게크기를바꿀수있는자료구조 각노드는다음노드를가리키는포인터를가짐. 각노드를다음노드를가리키는포인터로연결하여만든리스트. Single Linked List 라고도함. 링크드리스트의첫번째노드를헤드 (Head), 마지막노드를테일 (Tail) 이라고한다. C 언어로표현하는링크드리스트의노드 typedef
More information1장. 리스트
01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리, 그래프등 탐색키데이터 순차탐색 (sequential
More information슬라이드 1
CHAP 8: 우선순위큐 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 우선순위큐 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터 응용분야 : 시뮬레이션시스템
More information슬라이드 1
CHAP 8: 우선순위큐 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터 응용분야 : 시뮬레이션시스템 ( 여기서의우선순위는대개사건의시각이다.)
More informationC 언어 강의노트
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 information5.스택(강의자료).key
CHP 5: https://www.youtube.com/watch?v=ns-r91557ds ? (stack): (LIFO:Last-In First-Out):. D C B C B C B C B (element) C (top) B (bottom) (DT) : n element : create() ::=. is_empty(s) ::=. is_full(s) ::=.
More informationAlgorithms
자료구조 & 알고리즘 리스트 (List) Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 선형리스트 연결리스트 2 선형리스트 선형리스트 선형리스트의개념 선형리스트의구현 연결리스트 3 선형리스트개념 리스트 (List) 목록, 대부분의목록은도표 (Table) 형태로표시 추상자료형리스트는이러한목록또는도표를추상화한것
More informationCH06)자료구조.hwp
자료구조 (Data Structure) ) 자료구조의정의 프로그램에서사용하기위한자료를저장매체에저장하는방법및각자료간의관계, 처리방법을분석하는이론 자료의표현과연산의기초과학이다. 일련의자료들을조직화, 구조화시킨다. 모든자료구조에대하여연산처리가가능하다. 구현된자료구조에따라프로그램실행시간이다르다. 2) 자료구조의목적 ( 이유 ) 실제적으로물리적인저장장치는일정한규칙으로하나의선형형태로존재하기때문에그특성에맞게적절한형태로
More informationContents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74
큐 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74 1. 큐 v 큐 (Queue) 데이터의삽입과삭제가양쪽끝에서일어나는자료구조
More informationPowerPoint 프레젠테이션
C 언어포인터정복하기 16 강. 포인터로자료구조화하기 TAE-HYONG KIM COMPUTER ENG, KIT 2 학습내용 구조체멤버와구조체포인터멤버 다른구조체 ( 변수 ) 를가리키는구조체 ( 변수 ) 연결된리스트 의구성및관리 포인터로 연결된리스트 탐색하기 3 중첩구조체에자료저장하기 중첩된구조체변수에값저장하기 struct person { char PRID[15];
More information원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를
리스트에대한설명중틀린것은 구조체도리스트의요소가될수있다 리스트의요소간에는순서가있다 리스트는여러가지방법으로구현될수있다 리스트는집합과동일하다 다음은순차적표현과연결된표현을비교한것이다 설명이틀린것은 연결된표현은포인터를가지고있어상대적으로크기가작아진다 연결된표현은삽입이용이하다 순차적표현은연결된표현보다액세스시간이많이걸린다 연결된표현으로작성된리스트를 개로분리하기가쉽다 다음은연결리스트에서있을수있는여러가지경우를설명했는데잘못된항목은
More information슬라이드 1
CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element
More informationChapter 4. LISTS
연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는
More information1장. 리스트
01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 05. AVL 트리 06. B- 트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리,
More information61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&
More information<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>
쉽게풀어쓴 C 언어 Express 제 17 장동적메모리와연결리스트 이번장에서학습할내용 동적메모리할당의이해 동적메모리할당관련함수 연결리스트 동적메모리할당에대한개념을이해하고응용으로연결리스트를학습합니다. 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것
More informationChap 6: Graphs
AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node
More informationq 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2
연결자료구조표현방식 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 연결자료구조방식 2 단순연결리스트 3 원형연결리스트 4 이중연결리스트 3 다항식의연결자료구조표현 2 q 연결자료구조 v 순차자료구조의문제점 삽입연산이나삭제연산후에연속적인물리주소를유지하기위해서원소들을이동시키는추가적인작업과시간소요 Ø 원소들의이동작업으로인한오버헤드는원소의개수가많고삽입
More information11강-힙정렬.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 informationo 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 -
스택 (stack) SANGJI University Kwangman Ko o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 - o 스택의특징 ~ 모든원소의삽입과삭제가 top 이라는자료구조의한쪽끝에서만수행되는제한된리스트구조 ~ 후입선출 (Last-In-First-Out, LIFO) 방식 가장마지막에입력된자료가가장먼저출력 o 스택의동작 ~ top 에서만삽입
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More information03_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 informationChap 6: Graphs
5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV
More informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More information슬라이드 1
CHP 6: 큐 C 로쉽게풀어쓴자료구조 생능출판사 2005 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 큐 DT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element
More information4장
CHAP 5: 스택 스택이란? 스택 (stack): 쌓아놓은더미 스택의특징 후입선출 (LIFO:Last-In First-Out): 가장최근에들어온데이터가가장먼저나감. D C B C B C B C B A A A A 스택의구조 요소 (element) C 스택상단 (top) B A 스택하단 (bottom) 스택추상데이터타입 (ADT) 객체 : n개의 element형의요소들의선형리스트
More informationLab 5. 실습문제 (Double linked list)-1_해답.hwp
Lab 5. Doubly-linked list 의구현 실험실습일시 : 2009. 4. 13. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 19. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Doubly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Doubly-linked list의각함수를구현한다.
More informationMicrosoft 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슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationchap8.PDF
8 Hello!! C 2 3 4 struct - {...... }; struct jum{ int x_axis; int y_axis; }; struct - {...... } - ; struct jum{ int x_axis; int y_axis; }point1, *point2; 5 struct {....... } - ; struct{ int x_axis; int
More informationMicrosoft PowerPoint - 08-Queue.ppt
Chapter Queue ( 큐 ) Dongwon Jeong djeong@kunsan.ac.kr Department of Informatics & Statistics 학습목표 큐의개념및추상데이터타입에대한이해 큐의구현방법 배열 링크드리스트 덱 / 데크의개념과구현방법 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In
More informationMicrosoft PowerPoint - 07-chap05-Stack.ppt
/ 스택이란? 스택 stack): 쌓아놓은더미 hapter 5 스택 Dongwon Jeong djeong@kunsan.ac.kr Department of Informatics & Statistics 학습목표 스택의개념이해 스택의동작원리이해 배열과연결리스트를이용한스택구현 스택응용프로그램 스택의특징 후입선출 LIFO:Last-In First-Out) 가장최근에들어온데이터가가장먼저나감.
More informationMicrosoft 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 information03장.스택.key
---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():
More information2002년 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 informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More informationuntitled
- -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int
More information4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp
2015년도 국가직 9급 컴퓨터 일반 문 1. 시스템 소프트웨어에 포함되지 않는 것은? 1 1 스프레드시트(spreadsheet) 2 로더(loader) 3 링커(linker) 4 운영체제(operating system) - 시스템 소프트웨어 : 운영체제, 데이터베이스관리 프로그램,, 컴파일러, 링커, 로더, 유틸리티 소프트웨 어 등 - 스프레드시트 : 일상
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
Basic Data Structures, Make, GDB Contents Data Structures Linked List Tree Hash Make 사용법 디버거 (gdb) 사용법 2/17 Reference The C Programming language, Brian W. Kernighan, Dennis M. Ritchie, Prentice-Hall Teach
More information<4D F736F F F696E74202D20C0DAB7E1B1B8C1B65FC3E2BCAEBCF6BEF7>
한국방송통신대학교컴퓨터과학과 2 학년자료구조 제 1 장기본개념 자료와정보 3 알고리즘 4 자료 data : 현실세계에서관찰이나측정을통해수집된값 value 이나사실 fact 특정한일을수행하는명령어들의유한집합 정보 information : 자료를처리 / 추출 process 해서얻어진유용한결과 입 출 력 : 외부에서제공되는자료가있을수있다력 : 적어도한가지결과를생성한다
More information(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슬라이드 1
CHAP 5 : 스택 yicho@gachon.ac.kr 1 5.1 스택추상데이터타입 스택 (stack) 이란?: 쌓아놓은더미 2 스택의특징 후입선출 (LIFO:Last-In First-Out): 가장최근에들어온데이터가가장먼저나감. D C B C B C B C B A A A A 3 스택의구조 요소 (element) 스택에저장되는것 C 스택상단 (top) : 스택에서입출력이이루어지는부분
More informationEA0015: 컴파일러
5 Context-Free Grammar 무엇을공부하나? 앞에서배운 " 정규식 " 은언어의 " 어휘 (lexeme)" 를표현하는도구로사용되었다. 언어의 " 구문 (syntax)" 은 " 정규언어 " 의범위를벗어나기때문에 " 정규식 " 으로표현이불가능하다. 본장에서배우는 " 문맥자유문법 " 은언어의 " 구문 (syntax)" 을표현할수있는도구이다. 어떤 " 문맥자유문법
More information중간고사 (자료 구조)
Data Structures 215 중간고사 문제에서명시적으로기술하지않은부분은교재의내용에근거함. 215. 1. 27. 1 다음용어에대하여간단하게설명하시오 ( 각 3 점 *1=3 점 ) 1 abstract data type 6 Circular linked list 2 recursion 3 time complexity 4 space complexity 5 Single
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More information09J1_ _R.hwp
상수삽입전이시간을가지는양단우선순위큐 217 DOI: 10.3745/KIPSTA.2009.16-A.3.217 상수삽입전이시간을가지는양단우선순위큐 정해재 요 약 우선순위큐는스케줄링, 정렬, 유전자검색과같은우선순위에따른검색, 최단거리계산과같은응용에사용될수있다. 본논문에서제안하는배열을이용한양단우선순위큐자료구조는삽입과삭제연산에각각 O(1) 전이시간과 O(logn) 시간이걸린다.
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue
More informationMicrosoft PowerPoint Backtracking.pptx
알고리즘 (Algorithm) g( 되추적 ) 2011년봄학기 강원대학교컴퓨터과학전공문양세 되추적 (backtracking)? 갈림길에표시를해두었더라면 간단히말해서되추적은갈림길에표시를해두는기법이다. Page 2 강의순서 되추적기술 n-queens Problem Monte Carlo Technique Graph Coloring Hamiltonian Circuits
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More information2 단어별로읽어들이기 WORDTREE 2 2. 단어별로읽어들이기. 먼저입력스트림으로부터단어를선별하는함수부터작성하겠습니다. getword ( ) 함수는주어진입력을단어별로다루기위해서, 입력스트림으로부터단어를빼내는함수입니다. 여기서단어란글자 (letter) 로시작하면서글자와
1. 단어출현횟수출력. 이프로그램은 The C Programming Language 책의 6.5 절 Self-referntial Structures 의첫번째예제프로그램을교육을목적으로자세한설명을곁들여 CWEB 으로다시작성한것으로파일을입력으로받아서그파일에있는모든단어의출현횟수를출력하는프로그램입니다. 입력파일에어떠한단어들이들어있는지미리알수없기때문에단어들을알파벳순으로나열할수는없어
More information