[특강자료]알고리즘-김현환PE.key

Size: px
Start display at page:

Download "[특강자료]알고리즘-김현환PE.key"

Transcription

1 VER 1.12 알고리즘 김현환 PE(98 회정보관리 )

2 ! 강의순서 (0.5hr) / (3hr+) (0.5hr)! 강의목적

3 Ⅰ. 1. 알고리즘의마인드맵 2. 출제경향분석 3

4 1. (1/6) 4

5 1. (2/6) 5

6 1. (3/6) 6

7 1. (4/6) 7

8 1. (5/6) 8

9 1. (6/6) 9

10 2. (1/6)! 기출통계 (5 회 ) * 총계 (1 교시형 /2 교시형 ) 구분 96회 98회 99회 101회 102회 관리 1(1/0) 1(0/1) 2(1/1) 1(0/1) 1(0/1) 응용 1(0/1) 1(0/1) - 1(0/1) - 합계 2(1/1) 2(0/2) 2(1/1) 2(0/2) 1(0/1)! 주요출제영역 자료구조 알고리즘기법 알고리즘설계 스택 버블정렬 문자열탐색 점근표기법 분할과정복 큐 삽입정렬 해시테이블 복잡도 탐욕알고리즘 링크리스트 힙정렬 최소신장트리 동적계획법 트리 퀵정렬 최단경로탐색 백트래킹 그래프 이진탐색 휴리스틱탐색 10

11 2. (2/6)! 96 회 [ 관 1] 그래프를이용하여최적경로를찾는데이용되는최소신장트리 (Minimal spanning Tree) 알고리즘에대하여설명하시오. [ 응 2] 데이터압축기법인런렝스 (Run Length) 코딩과허프만 (Huffman) 코딩에대하여설명하시오.! 98 회 [ 관 4] 인공지능응용정보시스템이나게임개발시길찾기에이용되는 ijkstra 알고리즘과 * 알고리즘을 비교설명하시오. [ 응 4] 해쉬테이블 (Hash Table) 의개념과장단점, 활용분야및충돌해결 (ollision Resolution) 의여러가지 기법에대하여설명하시오.! 99 회 [ 관 4] 퀵정렬 (Quick Sort) 알고리즘을설명하고, 다음데이터를퀵정렬알고리즘을사용해서정렬하는 과정을설명하시오. 30, 15, 16, 24, 38, 33, 17, 29, 32 11

12 2. (3/6)! 101 회 [ 관 2] _node (linked list)..! (, _tmain()) 12

13 2. (4/6) 1) 숫자 10, 5, 8, 3, 1, 7 을삽입하되작은수부터연결리스트가유지되도록함수 ordered_insert(int k) 를작성하시오. ( 단, k 는삽입하려는정수 ) 2) 연결리스트를구성하는각 node 의변수 data 를모두출력하는함수 print_list(node* t) 를작성하시오. ( 단, t 는 node 에대한시작포인터이고, 화면에출력할함수는 printf() 를사용 ) 3) 삭제하려는숫자를인수로받아그노드를삭제하는함수 delete_node(int k) 를작성하시오. ( 단, k 는삭제하려는정수 ) [ 응 3] 쓰레드이진트리 (Threaded inary Tree) 를정의하고쓰레드이진트리를표현하는일반적규칙과쓰레드이진트리를나타내기위한노드구조를제시하시오. 또한다음에제시된이진트리에대하여전위운행방식에의한쓰레드이진트리가메모리내에서어떻게표현되는지연결리스트를사용하여그림으로제시하시오. 13

14 2. (5/6)! 102 회 [ 관4] S_reateStack()... (push) ( void S_Push(S* Stack, ElementType ata). (pop) ( ElementType S_Pop(S* Stack) 14

15 2. (6/6) void S_Push(S* Stack, ElementType ata) { // 내용을채우세요 } ElementType S_Pop(S* Stack) { // 내용을채우세요 } int main(void) { int i = 0;!! } S* Stack = NULL; S_reateStack(&Stack, 10); S_Push(Stack, 3); S_Push(Stack, 37); S_Push(Stack, 11); S_Push(Stack, 12); 15

16 3.! 학습토픽리스트 " 링크드리스트 " 이진탐색 " 스택 " 문자열탐색 " 큐 " 최소신장트리 " 트리 " 최단경로탐색 " 그래프 " 휴리스틱탐색 " 버블정렬 " 알고리즘성능분석 " 삽입정렬 " 분할과정복 " 힙정렬 " 탐욕알고리즘 " 퀵정렬 " 동적계획법 " 해시테이블 " 백트래킹 16

17 Ⅱ. 1. 링크리스트 2. 스택 3. 큐 4. 트리 5. 그래프 17

18 3. (1/6)! 노드와링크드리스트 노드 링크드리스트 다음노드에대한포인터 데이터 노드 head tail 정의 : 배열처럼데이터집합을보관하는기능을가지면서배열과는달리유연하게크기를! 바꿀수있는자료구조 구성요소 : Node( 데이터, 포인터 ) 정의 : 데이터와포인터로이루어진노드를연결해서만든리스트 특징 : 리스트사이에노드삽입 / 제거용이, 순차검색에활용!! 구성요소 : Node, Head, Tail

19 3. (2/6)! 링크드리스트추가 노드추가

20 3. (3/6)! 링크드리스트삭제 삭제대상 이전노드로하여금삭제한노드가가리키던 노드를가르키게한다.

21 3. (4/6)! 링크드리스트삽입 5 새노드 앞노드의포인터가 새노드를가르키게하고 5 새노드의포인터가 뒤노드를가르키게한다

22 3. (5/6)! 더블링크드리스트 이전노드를가리키는포인터 다음노드를가리키는포인터 링크드리스트의탐색기능을개선한자료구조 양방향탐색이가능 head tail

23 3. (6/6)! 환형링크드리스트 tail 은자신의뒷노드로서 head 를가르킨다 head 는자신의앞노드로서 tail 을가르킨다. head 와 tail 이연결되어있는더블링크드리스트자료구조 tail 은 head 의 앞노드 head 는 tail 의 뒷노드 head tail

24 3. (6/6)! 링크드리스트의특징 - / / - - 4yte - -

25 1. (1/3)! 스택의정의 1. LIFO 구조 : 먼저삽입된데이터가 가장마지막에나오는 자료구조. 2. 구현방식 : 배열또는리스트형식. 3. 구성요소 : Stack Pointer, Top 4. 주요연산 : Push, Pop 먼저들어오면개고생!!

26 1. (2/3)! 스택구현방안 배열방식 링크리스트방식 구성요소 배열의최대용량 배열버퍼 최상위위치 링크리스트의 Header 링크리스트의 Tail #define MX 5! 구현 int Stack[MX]; int Top; Top 은배열의마지막위치를가리킨다 주소공간 typedef struct _taglinkedliststack Node* List; Node* Top; } LinkedListStack; Top 포인터는리스트의마지막을가리킴

27 1. (3/3)! 스택연산 삽입 (Push) 삭제 (Pop) 200 Pop 작업전 스택포인터 100 Push 스택포인터 200 (top) 100 (top) 작업후 스택포인터 200 (top) 100 스택포인터 (top) 100

28 2. (1/3)! 큐의정의 1. FIFO 구조 : 먼저삽입된데이터가 가장먼저나오는 자료구조. 2. 구현방식 : 순환큐, 링크드큐 3. 구성요소 : Front, Rear 4. 주요연산 : Enqueue, equeue 선착순!!!

29 2. (2/3)! 큐구현방안 순환큐 링크드큐 구성요소 순환큐의최대용량 인덱스 (Front, Rear) 순환큐버퍼 링크드큐의 Front 링크드큐의 Rear 노드의수 front rear front rear 구현 dequeue enqueue #define MX 5 int Front, Rear; int Queue[MX]; typedef struct _taglinkedqueue Node* Front; Node* Rear; } LinkedQueue; Rear 포인터는리스트의마지막을가리킴

30 2. (3/3)! 큐연산 삽입 (Enqueue) 삭제 (equeue) enqueue dequeue 작업전 front rear 1 front rear 작업후 front rear front rear

31 4. (1/11)! 트리의구성 범례 레벨 1 형제노드 EO 루트 가지 레벨 2 개발본부장영업본부장경영본부장 잎 레벨 3 선행기술팀오피스실영업팀경영기획팀 구성요소 노드 경로 - 부모노드 - 깊이 레벨 4 오피스팀 모바일팀 - 자식노드 - 형제노드 - 차수 - 높이 - 무게

32 4. (2/11)! 이진트리란? E F 1. 정의 : 모든노드가최대 2 개의 자식을가질수있는트리.! 2. 유형 포화이진트리 완전이진트리 경사이진트리 3. 순회 : 전위, 중위, 후위! 4. 활용 : 컴파일러, 자료검색

33 4. (3/11)! 이진트리의유형 포화이진트리완전이진트리경사이진트리 E F G E leaf 노드들이모두같은높이에존재노드총개수 : 2ᴷ - 1 leaf 노드들이트리의왼쪽부터차곡차곡채워진형태 한쪽방향으로노드들이채워진형태

34 4. (4/11)! 이진트리의순회방식 전위 (Preorder) 중위 (In order) 후위 (Postorder) E F G E F G E F G 방향 : 근 -> 좌 -> 우 표식 :! 방향 : 좌 -> 근 -> 우 표식 :! 방향 : 좌 -> 우 -> 근 표식 :

35 4. (5/11)! 이진트리의순회상세 (Preorder) E F E F E F E F E F E F

36 4. (6/11)! VL 트리란? alanced Factor E 1. 정의 : 좌우서브트리의높이차 1 이하인이진탐색트리.! 2. 주요특징 O(log N) 의검색성능보장 VL 형태로트리유지 3. alanced Factor : +1, 0, -1 경우만허용, 그외의경우 Rotation! 4. 회전방식 : LL, LR, RL, RR

37 4. (7/11)! VL 트리의불균형을초래하는 4 가지타입 LL 타입 LR 타입 RL 타입 RR 타입 왼쪽서브트리의왼쪽서브트리에노드삽입 왼쪽서브트리의오른쪽서브트리에노드삽입 오른쪽서브트리의왼쪽서브트리에노드삽입 오른쪽서브트리의오른쪽서브트리에노드삽입

38 4. (8/11)! VL 트리의 Rotation 방법 (LL 회전 ) Phase #1 Phase #2 Phase #3 Phase #4 7 Pivot 설정 7 오른쪽회전 7 2 삽입 왼쪽서브트리의왼쪽서브트리에노드삽입 7~ 2 까지의경로에서가운데노드 5 를 Pivot 노드로설정 Pivot 노드를루트노드방향으로오른쪽회전 Pivot 노드는최종적으로루트노드

39 4. (9/11)! VL 트리의 Rotation 방법 (LR 회전 ) Phase #1 Phase #2 Phase #3 Phase # 오른쪽회전 Pivot 설정 6 왼쪽회전 6 6 삽입 왼쪽서브트리의오른쪽서브트리에노드삽입 7 ~ 6 까지의경로에서마지막노드 6 을 Pivot 노드로설정 Pivot 노드를부모노드 5 방향으로왼쪽회전 Pivot 노드를부모노드 7 방향으로오른쪽회전

40 4. (10/11)! VL 트리의 Rotation 방법 (RL 회전 ) Phase #1 Phase #2 Phase #3 Phase # 왼쪽회전 9 9 오른쪽회전 삽입 8 Pivot 설정 오른쪽서브트리의왼쪽서브트리에노드삽입 7 ~ 8 까지의경로에서마지막노드 8 을 Pivot 노드로설정 Pivot 노드를부모노드 9 방향으로오른쪽회전 Pivot 노드를부모노드 7 방향으로왼쪽회전

41 4. (11/11)! VL 트리의 Rotation 방법 (RR 회전 ) Phase #1 Phase #2 Phase #3 Phase #4 7 7 Pivot 설정 7 왼쪽회전 삽입 오른쪽서브트리의오른쪽서브트리에노드삽입 7 ~ 9 까지의경로에서가운데노드를 Pivot 노드로설정 Pivot 노드를루트노드방향으로왼쪽회전 Pivot 노드는최종적으로루트노드

42 5. (1/8)! 그래프의정의 정점의집합간선의집합그래프 E E 정의 : 정점의집합을 V, 간선의집합을 E, 그래프를 G 라하면 G = (V, E)

43 5. (2/8)! 그래프의유형 무방향그래프방향그래프완전그래프 E E E - edge 에방향성이없이연결 - vertex 들의순서가정해지지않음 - 실선으로 edge 표현 - edge 에방향성이존재 - vertex 들의순서가정해짐 - 화살표로 edge 의방향표시 - 모든 vertex 쌍을연결하는 edge 존재 - edge 수 = (n*(n-1)) / 2 단, n = vertex 수

44 5. (3/8)! 그래프표현방법 ( 인접행렬 ) E E E 대칭 는,, E와인접 는,, 와인접 는, E와인접 는, 와인접 E는, 와인접 1열 : (, ), (, ), (, E) 2열 : (, ), (, ), (, ) 3열 : (, ), (, E) 4열 : (, ), (, ) 5열 : (E, ), (E, )

45 5. (4/8)! 그래프표현방법 ( 인접리스트 ),, E,,, E E, E, 규칙 각정점 인접정점들 각각의 vertex에대한인접한 vertex들을나열각 vertex를시작으로인접 vertex를 list로연결특징연결된 vertex들만리스트로관리하여기억장소낭비최소상대적으로 edge수가많을경우, 기억장소낭비증가 E E

46 5. (5/8)! 그래프탐색 깊이우선탐색 너비우선탐색 - 스택기반 - 백트래킹접근 - 미로찾기활용 - 큐기반 - 최단경로접근 - 라우팅알고리즘활용

47 5. (6/8)! 그래프탐색 (FS) E E E H H H F F F 규칙 특정 vertex 를시작점으로선택 선택된 vertex 에 방문 표시 선택된 vertex 에연결된여러 vertex 들을검사 검사한 vertex 들중에미방문 vertex 를새롭게선택, 원래 vertex 는 Stack 에삽입 검사한 vertex 들중에미방문한 vertex 가하나도없으면, 최종적으로삽입된 vertex 를꺼내서새롭게선택 E F H

48 5. (7/8)! 그래프탐색 (FS) E E E H H H F F F 규칙 특정 vertex 를시작점으로선택 선택된 vertex 에 방문 표시 선택된 vertex 에연결된여러 vertex 들을검사 검사한 vertex 들중에미방문 vertex 를새롭게선택, 원래 vertex 는 Queue 에삽입 검사한 vertex 들중에미방문한 vertex 가하나도없으면, Queue 의 Front 에서 vertex 를꺼내새롭게선택 E F H

49 5. (8/8)! 너비우선탐색상세 ( 후반부생략 ) E F H E F H E F H E F H E E F H E F G E F H F G 큐큐큐큐큐큐

50 Ⅲ. 1. 버블정렬 2. 삽입정렬 3. 힙정렬 4. 퀵정렬 5. 이진탐색 6. 문자열탐색 7. 해시테이블 8. 최소신장트리 9. 최단경로탐색 10. 휴리스틱탐색 50

51 1. (1/3)! 버블정렬의정의 여러개의자료중에서서로이웃하는키값을 두개씩비교하여순서를결정하는정렬방법 주요특징 간단한알고리즘느린속도 Flag를통해속도개선가능

52 1. (2/3)! 버블정렬의단계 For i = 0 To N - 1 인접한두개의키값을비교한다.! 앞의키값이뒤의키값보다크면교환! 더이상비교할대상이없을때까지처음부터반복 a[i] > a[i+1] true temp = a[i] a[i] = a[i+1] a[i+1] = temp false

53 1. (3/3)! 버블정렬의사례 Phase #1 Phase #2 Phase #3 Phase #4 여기서부터시작 여기서부터시작 여기서부터시작 여기서부터시작 비교및교환 비교 비교및교환 비교 비교 비교및교환 비교및교환 속도 최악 : n * (n - 1) / 2 최선 : (n - 1) 평균 : O(n²)

54 2. (1/3)! 삽입정렬의정의 첫번째키는정의된것으로보고두번째키부터 순서에맞는위치에삽입시켜정렬하는방법 주요특징 간단한알고리즘 레코드의이동이많음 비교적크기가작은 데이터집합정렬에유리

55 2. (2/3)! 삽입정렬의단계 For i = 2 To N 삽입대상위치를 2 번째부터마지막까지지정 비교대상을처음부터바로전까지지정 정렬대상영역의값들과뽑아낸요소와비교 삽입할값보다큰값을가진모든요소들을 한자리씩오른쪽으로이동 새로생긴빈자리에해당요소를삽입 전체데이터집합의정렬이완료될때까지반복 temp = a[i] For j = i - 1 To 1 step - 1 temp < a[j] true a[j+1] = a[j] a[j] = temp false

56 2. (3/3)! 삽입정렬의사례 Phase #1 Phase #2 Phase #3 속도 추출 추출 추출 [ 최악 ] - n * (n - 1) / 2 - 역순정렬시! [ 최선 ] 이동 이동 이동 (n - 1) 삽입 삽입 삽입 - 이미정렬된상태! [ 평균 ] - O(n²)

57 3. (1/4)! 힙정렬의정의 트리내의모든노드가부모노드보다커야한다는 규칙을만족하는완전이진트리 주요유형 min heap : 루트는항상작은값 max heap : 루트는항상큰값

58 3. (2/4)! 힙정렬의단계 정렬하고자하는데이터를 heap에넣는다. heap을정렬한다. heap의 Root를추출한다. heap을재정렬한다. 추출할데이터가없을때까지 1 ~ 4 반복한다.

59 3. (3/4)! 힙정렬의삽입 삽입 7 3 교환 Heap의최고깊이, 최우측에새노드를추가삽입한노드를부모노드와비교삽입한노드가부모노드보다크면연산종료삽입한노드가부모노드보다작으면다음단계진행부모노드와삽입한노드의위치를서로교환더이상교환할노드가없을때까지반복

60 3. (4/4)! 힙정렬의삭제 삭제 2 이동 교환 교환

61 4. (1/4)! 퀵정렬의정의 Pivot 을기준으로 작은값은왼쪽, 큰값은오른쪽에위치시키는 분할과정복에기반한알고리즘 주요특징 분할과정복기반재귀호출구조알고리즘이상대적으로복잡정렬위한별도스택필요

62 4. (2/4)! 퀵정렬의단계 quicksort(left, right) 정렬할원소들의집합에서 Pivot 값을설정 Pivot 보다큰값은오른쪽, 작은값은왼쪽 분할된집합의크기가 1 이될때까지반복 left < right true select pivot = a[left] loop until i < j loop until pivot < a[j] loop until pivot > a[i] temp = a[i] a[i] = a[j] a[j] = temp false j-- i++ a[left] = a[i] a[i] = pivot quicksort(left, i-1) quicksort(i+1, right)

63 4. (3/4)! 퀵정렬의성능!! 최악 : n * (n - 1) / 2 최선 : n * log₂ n 평균 : O(n * log₂ n)

64 4. (4/4)! 퀵정렬의사례 단계정렬과정세부내용 Phase #1 1 Pivot 2 진행 Pivot 으로 5 를선택 2 Pivot 보다크거나같은값탐색 3 Pivot 보다작은값탐색 Phase # 왼쪽과오른쪽으로진행하면서각각값이탐색된경우 탐색된위치의값을교환 Phase # 왼쪽과오른쪽의 index 가겹치거나역전이되면, Pivot 과역전된오른쪽 index 의값간교환 Phase # 분할 Pivot 과탐색 index 간교환으로위치확정 Pivot 을기준점으로왼쪽, 오른쪽집합분할 집합의크기가 1 이될때까지반복

65 5. (1/4)! 이진탐색의정의 정렬된데이터집합에서탐색범위를 1/2 씩 줄여나가면서수행하는방식 주요특징 분할과정복기반정렬된데이터집합에서사용고속탐색

66 5. (2/4)! 이진탐색의단계!!! 데이터집합의가운데있는기준값과찾는키값비교찾는키값 > 기준값 : 오른쪽부분검색찾는키값 < 기준값 : 왼쪽부분검색키값을찾을때까지이진검색을순환적반복

67 5. (3/4)! 이진탐색의사례 데이터집합 탐색범위 1 = n * (1/2)ˣ [8 을찾는경우 ] 기준값 1 8 < 12 -> 왼쪽검색 검색범위 1 = n * (1/2ˣ) 2ˣ = n 2 8 > 3 -> 오른쪽검색 기준값 log₂2ˣ = log₂n 3 8 = 8 -> 검색완료 검색범위 기준값 x = log₂n 탐색속도 O( log₂n )

68 5. (4/4)! 이진탐색과순차탐색의비교 구분장점단점 순차탐색 알고리즘단순, 이해용이 적은자료집합에서높은성능 자료의사전정렬불필요 많은자료집합에서잦은비교횟수 타알고리즘대비느린속도 이진탐색 알고리즘단순, 이해용이 많은자료집합에서도사용가능 적은비교횟수, 빠른속도 자료의사전정렬필요

69 6.! 문자열탐색의유형!!! 무식한탐색 카프라빈탐색 KMP 탐색 보이어무어탐색

70 6. (1/22)! 무식한탐색 처음부터끝까지 1:1 비교를수행하는방법

71 6. (2/22)! 무식한탐색방법 문자열집합 가나가라다사 비교 패턴 가 라 탐색완료

72 6. (3/22)! 카프라빈탐색 해시값을활용하여비교를수행하는방법

73 6. (4/22)! 카프라빈탐색방법 해시값 H₀ : ( 가 *2³ + 나 *2² + 가 *2¹ + 라 *2⁰) 문자열집합 가나가라다사아가바 패턴 가 라 다 사 해시값 : ( 가 *2³ + 라 *2² + 다 *2¹ + 사 *2⁰)

74 6. (5/22)! 카프라빈탐색방법 제외 해시값 H₁ : 2(H₀ - 가 *2³) + 다 *2⁰ 문자열집합 가나가라다사아가바 포함 패턴 가 라 다 사 해시값 : ( 가 *2³ + 라 *2² + 다 *2¹ + 사 *2⁰)

75 6. (6/22)! 카프라빈탐색방법 제외 해시값 H₂ : 2(H₁ - 나 *2³) + 사 *2⁰ 문자열집합 가나가라다사아가바 일치 포함 패턴 가 라 다 사 해시값 : ( 가 *2³ + 라 *2² + 다 *2¹ + 사 *2⁰)

76 6. (7/22)! 카프라빈탐색방법 해시값 H₁ : ( 나 *2³ + 가 *2² + 라 *2¹ + 다 *2⁰) 2( 나 *2² + 가 *2¹ + 라 *2⁰) + 다 *2⁰ 2( 가 *2³ + 나 *2² + 가 *2¹ + 라 *2⁰ - 가 *2³) + 다 *2⁰ 2(H₀ - 가 *2³) + 다 *2⁰ 해시값도출공식 Hᵢ = 2(Hᵢ ₁ - S[i-1] * 2ᵐ ¹) + S[i+m-1]*2⁰ S 는문자열, S[n] 은문자열내의 n 번째문자, m 은패턴의길이

77 6. (8/22)! 카프라빈탐색의문제점 문자열집합과패턴길이의크기에따라 해시크기가매우커질수있다. 컴퓨터레지스터의용량초과 오퍼플로우발생

78 6. (9/22)! 카프라빈탐색의해결방법 나머지연산을통해해시크기를제한 Hᵢ = (2(Hᵢ ₁ - S[i-1] * 2ᵐ ¹) + S[i-m+1]*2⁰) mod q 단, q 는충분히큰 Prime Number 로선정

79 6. (10/22)! KMP 탐색 검색위치를본문의왼쪽부터시작해서 오른쪽으로옮겨가며문자를직접비교하는방법 단, 비교가필요한부분만비교를수행

80 6. (11/22)! KMP 탐색 패턴과본문내의문자열을한차례비교한후, 다음단계의검색에서사용가능한 정보 가남음 이정보를활용하여불필요한비교패스

81 6. (12/22)! KMP 탐색 접두부 : 문자열의머리부분 접미부 : 문자열의꼬리부분 경계 : 접두부와접미부쌍

82 6. (13/22)! KMP 탐색방법 접두부 접미부 가나다가나 접두부 / 접미부파악 가가나 나가나 가나다 다가나 가나다가 나다가나

83 6. (14/22)! KMP 탐색방법 가나다가나 경계

84 6. (15/22)! KMP 탐색방법 문자열 일치접두부의길이 가나다가나마바가나 문자열 일치접두부의최대경계너비 가나다가나라 패턴 가 나 다 가 나 라 이동거리 : 일치접두부의길이 - 최대경계너비 경계 이동 가 나 다 가 나 라

85 6. (16/22)! 보이어무어탐색 문자열을오른쪽에서왼쪽으로비교하는방법 불일치발생시최대의효율로이동

86 6. (17/22)! 보이어무어탐색방법 나쁜문자이동 착한접미부이동 - 패턴에서불일치문자검색 - 본문의불일치문자위치와 - 일치하도록패턴이동 - 패턴에서접미부검색 - 본문의접미부와패턴의접두부가 - 일치하도록패턴이동

87 6. (18/22)! 보이어무어탐색방법 ( 나쁜문자이동 ) 1 불일치문자 2 패턴에서불일치문자검색 3 같은위치에오도록패턴이동

88 6. (19/22)! 보이어무어탐색방법 ( 나쁜문자이동 ) 1 불일치문자 2 패턴에서불일치문자검색 3-1 만큼이동? 어디선가누군가에무슨일이생기면, 차차차착한접미부이동이 ~~

89 6. (20/22)! 보이어무어탐색방법 ( 착한접미부이동 ) 불일치 착한접미부 착한접미부와 일치하는문자열 본문의착한접미부와일치하는 패턴의부분을해당위치까지이동

90 6. (21/22)! 보이어무어탐색방법 ( 착한접미부이동 ) 불일치 착한접미부 패턴에는착한접미부와 일치하는부분이없음

91 6. (22/22)! 보이어무어탐색방법 ( 착한접미부이동 ) 착한접미부의접미부 패턴의착한접미부와일치하는부분을 착한접미부의접미부에일치하도록이동

92 4. (1/10)! 해시테이블의정의 해시함수를이용하여키값을버킷의슬롯에 배열시켜빠르게탐색하는알고리즘 주요특징 고정길이 One way O(1) 의탐색속도충돌처리매커니즘필요

93 4. (2/10)! 해시테이블의구성 Key 집합 bucket 15 key #1 key #2 해시함수 %, ->, &, 주소값 key #3 key # slot

94 4. (3/10)! 해시함수 (ivision) 나눗셈법 인자는테이블크기에가장가까운 Prime Number 가효율이좋음 주소 = 입력값 % 인자 원본데이터 해싱 주소값 : 19 % 7 = 크기 :

95 4. (4/10)! 해시함수 (Folding) 자릿수접기 인자는테이블크기에가장가까운 Prime Number 가효율이좋음 주소 = 각자리수의합 % 인자 원본데이터 해싱 주소값 : ( ) % 7 = 크기 :

96 4. (5/10)! 해시함수 그런데, 해싱을하다보면동일한값이출몰할때가있다. 어떡하지? 충돌해결이필요!!

97 4. (6/10)! 해시테이블의충돌해결 폐쇄주소법 개방주소법 - 해시함수에의해 - 얻어진주소만을사용! 직접체이닝 간접체이닝 - 해시함수가아닌다른주소 - 사용하도록허용! 선형탐사 제곱탐사 이중해싱 재해싱

98 4. (7/10)! 해시테이블의충돌해결 (haining) 체이닝 : 각데이터를해당주소에있는링크드리스트에삽입하여문제를해결 충돌 충돌 충돌 해시테이블은링크드리스트에대한포인터를관리

99 4. (8/10)! 해시테이블의충돌해결 (Linear Probing) 선형탐사 : 충돌이발생하면현재주소에서고정폭으로다음주소이동 충돌 37 #1 11 # 충돌 23 충돌 #2 11 # 고정폭만큼이동 : 1 # # 고정폭만큼이동 : 1 고정폭만큼이동 : 1

100 4. (9/10)! 해시테이블의충돌해결 (Quadratic Probing) 제곱탐사 : 충돌이발생하면현재주소에서제곱수만큼다음주소이동 충돌 37 #1 11 # 충돌 23 충돌 #2 11 # 제곱수만큼이동 : 1² # # 제곱수만큼이동 : 1² 제곱수만큼이동 : 2²

101 4. (10/10)! 해시테이블의충돌해결 (ouble Hashing) 이중해싱 : 충돌이발생하면제 2 의해시함수결과를더해다음주소이동 충돌 37 #1 11 # 충돌 23 #2 11 # hash1() + hash2() 이동폭 # hash1() + hash2() 이동폭 테이블의끝을만나면처음으로돌아감

102 7. (1/6)! MST (Minimum Spanning Tree) Graph Spanning Tree MST E E E E - vertex 와 edge 간의연결구조 - G = (V, E)! - 그래프의모든 vertex 를포함, - 비순환방식으로연결되어있는서브그래프! - 가중치의총합이가장적은신장트리 - 비순환구조 - 그래프내의 edge 들만을포함 - vertex 의수가 n 일때 n-1 개의 edge 포함

103 7. (2/6)! MST 알고리즘유형 PRIM KRUSKL - 시작점기반최소가중치 - 정점마다 edge 검사 - 우선순위큐기반구현 - 가중치의오름차순정렬수행 - 최소가중치 edge 선택 - 분리집합기반구현

104 7. (3/6)! Prim 알고리즘 E (4) (5) E E H (1) (7) H H F (2) (3) F (6) F 규칙 임의의 vertex를선택, 신장트리의루트노드로삽입선택된 vertex와인접 vertex들사이의 edge 가중치검사최소가중치를가지는 edge를선택해당 edge로두정점을연결했을때, cycle이발생하면버리고, 그렇지않으면신장트리에삽입선택된 edge는 edge 리스트에서제거 edge 리스트에더이상의 edge가없을때까지 2~5 반복

105 7. (4/6)! Prim 알고리즘상세 E (4) H (1) (1) (1) (1) F (2) (2) (3) F (2) (3) F (4) (5) E (4) (5) (4) (5) (1) (7) H (1) (6) H (1) F (6) (3) F (3) F (2) (3) (2) (2)

106 7. (5/6)! Kruskal 알고리즘 E (5) (3) E E H (2) (7) H H F (4) (1) F (6) F 규칙 정렬된 edge 리스트 그래프내의모든 edge 을가중치의오름차순으로정렬 현재 edge 들중에서가중치가가장적은 edge 를선택 해당 edge 로두정점을연결했을때, cycle 이발생하면버리고, 그렇지않으면신장트리에삽입 선택된 edge 는 edge 리스트에서제거 edge 리스트에더이상의 edge 가없을때까지 2~3 반복 1 : {G,F} 2 : {,} 3 : {, } 4 : {,G} 5 : {,} 6 : {F,H} 7 : {,} 9 : {,E} 10 : {,} 11 : {,F}

107 7. (6/6)! Kruskal 알고리즘상세 F H F F E F H F F E F H

108 8. (1/5)! 최단경로탐색 모로가도서울만가면된다??? 가장빠른경로로가야된다

109 8. (2/5)! 최단경로탐색의정의 국도 50km 30km 40km 대구대전평택 50km 부산 서울 60km 대전 80km 고속도로 정의 : 그래프내의한 vertex 에서다른 vertex 로이동할때 가중치합이최소값이되는경로를탐색하는알고리즘

110 8. (3/5)! 최단경로탐색유형 ijkstra ellmanford - 사이클없는방향성에만적용 - 가중치합최소 - Link State 알고리즘활용 - 사이클없는방향성에만적용 - 가중치의음수값도고려 - istance Vector 알고리즘활용

111 8. (4/5)! ijkstra 알고리즘 E F 6 H E H 13 F E F H 규칙 각 vertex들은시작점으로부터자신에게이르는경로의길이를저장할곳을준비모든 vertex들은경로의길이를무한대로초기화시작 vertex의경로길이를 0으로초기화하고최단경로에추가연결된 vertex들의경로길이를갱신인접한 vertex가최단경로에이미존재하면, 이전경로길이와비교. 작으면수정, 크면무시그래프내의모든 vertex들이최단경로로만들어질때까지 4 ~5 반복

112 8. (5/5)! ellmanford 알고리즘 E F 6 H E H 9 F E F H 규칙 각 vertex들은시작점으로부터자신에게이르는경로의길이를저장할곳을준비모든 vertex들은경로의길이를무한대로초기화시작 vertex의경로길이를 0으로초기화하고최단경로에추가음의가중치를고려하면서연결된 vertex들의경로길이를갱신인접한 vertex가최단경로에이미존재하면, 이전경로길이와비교. 작으면수정, 크면무시그래프내의모든 vertex들이최단경로로만들어질때까지 4 ~5 반복

113 Ⅲ. 1. 점근표기법 2. 복잡도 3. 분할과정복 4. 탐욕알고리즘 5. 동적계획법 6. 백트래킹 113

114 1. (1/3)! 점근표기법 알고리즘의수행시간을대략적으로나타내는방법

115 5. (2/3)! 점근표기법의유형 O(n²) ɵ(n²) Ʊ (n²) 37n + 5 2n² + 4n 3n³ ig O : 어떤최악의상황에서도성능을보장. ig Omega : 아무리좋은케이스라도그성능이상을낼수없음 ig Theta : 알고리즘이처리해야하는수행시간의상한과하한을동시에표현

116 5. (3/3)! ig O 표기법으로표현한알고리즘의성능간그래프 행렬곱셈 버블, 삽입 퀵, 합병정렬 순차탐색 이진탐색 해시테이블

117 5. (1/1)! 복잡도 시간복잡도 : 문제를해결하는시간과입력의함수관계! 공간복잡도 : 문제를해결하기위해필요한저장공간과함수관계

118 5. (1/2)! 분할과정복의정의 문제를잘개쪼개서해결!! Top-own 접근 분할정복결합 2 개이상하위문제로나눔분할된하위문제를해결정복된답을취합

119 5. (2/2)! 분할과정복의사례 다 가라나 정렬할데이터집합을반으로분할 다 가라나 하위데이터집합의크기가 1 이될때까지 분할반복 다 가라나 두데이터집합을합한것만큼의버퍼마련 가 다나라 두데이터집합의첫번째요소들을비교, 작은요소를버퍼에추가 가 나다라 최종적으로정렬된하나의데이터집합생성

120 5. (1/2)! 동적계획법의정의 부분문제의답을기반으로전체문제답을해결 ottom-up 기반 분할해탐색최적해 문제를부분문제로분할 분할된부분문제를해결 결과를테이블에저장 부분문제해를이용 상위문제해결

121 5. (2/2)! 동적계획법의사례 (Floyd lgorithm) table l 단계 l₁ 시작 l₂ 최단거리 = 38 목표 최단경로 = l₁ 단계 3 단계 4 단계 5 단계 6 단계

122 5. (1/5)! 탐욕적방법의정의 해당순간에최적이라고생각되는것을선택해나가는방법 근시안적해법 해선택실행가능성검사해검사 부분문제의최적해를구하고 결과를부분해집합에추가 문제의제약조건 위반여부검사 새로운부분해집합이 문제의해가되는지확인 전체문제의해미완성

123 5. (2/5)! 탐욕적방법사례 ( 고정길이코드와접두어코드 ) SII a b c d SII ( ) 고정길이코드 : 모든코드의길이가똑같은값을갖는코드체계 접두어코드 : 코드집합의어느코드도다른코드의접두어가되지않는코드 사례 abcd 의고정길이코드변환 : abcd 의접두어코드변환 :

124 5. (3/5)! 탐욕적방법사례 ( 허프만코딩 ) 문자열 aaabaacdd 빈도수 해선택 a b c d b c 2 실행가능성 검사 접두어코드 a : 0 b : 100 c : 101 d : a d 0 1 b c 6 실행가능성 검사 5 해선택 0 b 4 2 d 1 c 3 해선택 실행가능성 검사

125 5. (4/5)! 탐욕적방법사례 ( 허프만코딩압축풀기 ) 9 압축데이터 a 0 b d 1 c 압축해제버퍼 직접변환해보세요!

126 5. (5/5)! 탐욕적방법과동적계획법비교,, ijkstra lgorithm, Huffman oding knapsack Problem, Floyd Shortest Path

127 5. (1/2)! 백트래킹의정의 여러후보해중에서특정조건을충족시키는 모든해를찾는알고리즘 후보해목록확인부분해계산최종해 현재위치한부분해에서 선택이가능한목록확인 목록의부분해들을 하나씩계산 해가요구하는조건을 만족하는지확인 요구조건불만족

128 5. (2/2)! 백트래킹의사례 ( 미로탈출 ) S S 백트래킹 S G G G 백트래킹 S 백트래킹 S 백트래킹 S 백트래킹 G G G

129 IV. 1. 사례 #1 2. 사례 #2 3. 사례 #3 4. 사례 #4 129

130 1. 1 (1/2)! 사례 #1 1 단락. 해당알고리즘의정의를명확하게작성 2 단락. 가. 알고리즘의수행절차 나. 알고리즘의수행사례 3 단락. 알고리즘의활용

131 1. 1 (2/2)! 사례 #2 1 단락. 해당알고리즘의정의를명확하게작성 2 단락. 가. 알고리즘의원리 나. 알고리즘의유형 3 단락. 알고리즘의활용

132 2. 2 (1/6)! 사례 #3-1

133 2. 2 (2/6)! 사례 #3-2

134 2. 2 (3/6)! 사례 #3-3

135 2. 2 (4/6)! 사례 #4-1

136 2. 2 (5/6)! 사례 #4-2

137 2. 2 (6/6)! 사례 #4-3

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

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

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

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 - 6장 탐색.pptx

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

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 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

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

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

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

입학사정관제도

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

More information

슬라이드 1

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

More information

1장. 리스트

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

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

슬라이드 1

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

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

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

11장.그래프

11장.그래프 ---------------- T STRUTURS USIN ---------------- PTR 그래프 1/32 그래프 (graph) 란? 연결되어있는객체간의관계를표현하는자료구조 가장일반적인자료구조형태 그래프의예 트리 (tree) 지도, 지하철노선도 전기회로의연결상태 OS의프로세스와자원관계 인맥지도 2/32 그래프역사 오일러문제 (1800 년대 ) 다리를한번만건너서처음출발했던장소로돌아오는문제

More information

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E > 제 7 강의. 고급연결리스트 1. 원형연결리스트 2. 이중연결리스트 3. 연결리스트알고리즘 1 1. 원형연결리스트 (Circularly Linked Lists) 원형연결리스트란? 연결리스트의맨끝노드를첫번째노드와연결시켜서원형으로만든리스트 단순연결리스트 (Singly Linked 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

08장.트리

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

More information

슬라이드 1

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

More information

슬라이드 1

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

More information

정보

정보 정보 Sangwook Lee Deogi High School III 문제해결과프로그래밍 1 추상화 2 알고리즘 3 프로그래밍 2 알고리즘 2-1 알고리즘설계 2-2 알고리즘분석 3 2-1 알고리즘설계 (p.108) 학습목표 순차, 선택, 반복구조의흐름을설명할수있다. 다양한제어구조를활용하여논리적이고효율적인알고리즘을설계할수있다. 4 [1] 알고리즘제어구조 (p.109)

More information

제 1 장 기본 개념

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

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 CHAP 10: 그래프 C 로쉽게풀어쓴자료구조 생능출판사 2005 그래프 그래프 (graph): 연결되어있는객체간의관계를표현하는자료구조 그래프의예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 그래프 : 아주일반적인자료구조 ( 예 ) 트리도그래프의일종으로볼수있다. 그래프이론 (graph theory): 그래프를문제해결의도구로이용하는연구분야 그래프역사 1800

More information

슬라이드 1

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

More information

14장.탐색

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

More information

Microsoft PowerPoint - 08-chap06-Queue.ppt

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

More information

1장. 리스트

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

More information

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

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

More information

Algorithms

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

11장 포인터

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

More information

Chap 6: Graphs

Chap 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 information

슬라이드 1

슬라이드 1 CHAP 9: 정렬 정렬이란? 정렬은물건을크기순으로오름차순이나내림차순으로나열하는것 정렬은컴퓨터공학분야에서가장기본적이고중요한알고리즘중의하나 정렬은자료탐색에있어서필수 ( 예 ) 만약사전에서단어들이정렬이안되어있다면? 정렬의단위 레코드 정렬의대상 학생들의레코드 이름학번주소연락처 레코드 필드필드필드필드 키 (key) 정렬알고리즘의개요 많은정렬알고리즘존재 단순하지만비효율적인방법

More information

1장. 리스트

1장. 리스트 01. 그래프를소개합니다 02. 그래프를어떻게표현할것인가? 03. 그래프순회 : 그래프를따라산책하기 04. 최소신장트리 05. 최단경로탐색 06. 위상정렬 라인하르트오일러가 쾨니히스베르크의 7 개의다리문제 를풀기위해고안해낸수학적도구. 7 개의다리를간선 (Edge) 로, 4 개의육지를정점 (Vertex) 로표현. A A Pregel River B C B C D

More information

06장.리스트

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

More information

Microsoft PowerPoint - 08-Queue.ppt

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

More information

Microsoft PowerPoint - 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

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

More information

슬라이드 1

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

CH06)자료구조.hwp

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

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

Microsoft PowerPoint - chap10_tree

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

More information

설계란 무엇인가?

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

More information

o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 -

o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 - 스택 (stack) SANGJI University Kwangman Ko o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 - o 스택의특징 ~ 모든원소의삽입과삭제가 top 이라는자료구조의한쪽끝에서만수행되는제한된리스트구조 ~ 후입선출 (Last-In-First-Out, LIFO) 방식 가장마지막에입력된자료가가장먼저출력 o 스택의동작 ~ top 에서만삽입

More information

슬라이드 1

슬라이드 1 Data Structure Chapter 1. 자료구조와알고리즘 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 자료구조와알고리즘 일상생활에서의사물의조직화 해야할일리스트 조직도 일상생활에서의사물의조직화 사전 Ticket Box 3 일상생활과자료구조의비교 일상생활 vs 자료구조 자료구조 스택 큐 리스트 사전, 탐색구조

More information

Microsoft PowerPoint - 제10장-그래프.pptx

Microsoft PowerPoint - 제10장-그래프.pptx 제 강의. 그래프개념과그래프탐색 학습목차. 그래프의개념. 그래프의표현. 그래프탐색 . 그래프의개념 graph? chart? 오래된그래프문제로다음과 Köenigsberg 다리문제가있다. 이문제는다음과같은지형이있을때임의의한곳 (A,B,C,D) 에서출발하여 a 부터 f 까지 모든다리를한번씩건널수있는가? 하는문제이다. 자료구조의그래프는이러한문제를컴퓨터에표현하고알고리즘을개발하는분야이다.

More information

Chap 6: Graphs

Chap 6: Graphs AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node

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 CHAP 10 : 그래프 yicho@gachon.ac.kr 1 그래프역사 1800 년대오일러에의하여창안 오일러문제 모든다리를한번만건너서처음출발했던장소로돌아오는문제 A,B,C,D 지역의연결관계표현 위치 : 정점 (node) 다리 : 간선 (edge) 오일러정리 모든정점에연결된간선의수가짝수이면오일러경로존재함 따라서그래프 (b) 에는오일러경로가존재하지않음 2 그래프정의

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

슬라이드 1

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

More information

01장.자료구조와 알고리즘

01장.자료구조와 알고리즘 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 자료구조와알고리즘 1/30 자료구조 일상생활에서자료를정리하고조직화하는이유는? 사물을편리하고효율적으로사용하기위함 다양한자료를효율적인규칙에따라정리한예 2/30 컴퓨터에서의자료구조 자료구조 (Data Structure) 컴퓨터에서자료를정리하고조직화하는다양한구조

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

이번장에서학습할내용 동적메모리란? 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

Ch.8 Procedures and Environments

Ch.8 Procedures and Environments Chapter 10 그래프 (graph) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 그래프 (graph) 그래프 연결되어있는객체간의관계를표현하는자료구조 예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 다양한모델에적용할수있는유연성있는자료구조 연결되어있는객체간의관계를표현하는자료구조 꼭지점 (vertex) 와변

More information

Chapter 10 그래프 (graph) SANGJI University Kwangman KO

Chapter 10 그래프 (graph) SANGJI University Kwangman KO Chapter 10 그래프 (graph) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 그래프 (graph) 그래프 연결되어있는객체간의관계를표현하는자료구조 예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 다양한모델에적용할수있는유연성있는자료구조 연결되어있는객체간의관계를표현하는자료구조 꼭지점 (vertex) 와변

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

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

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

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

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms 2015-1 12. 그래프와관련알고리즘 2015 년 5 월 28 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 그래프 (Graph) 그래프의응용예 Outline 미로찾기 인터넷라우터에서의패킷 forwarding

More information

PowerPoint Presentation

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

More information

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

Algorithms

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

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 information

슬라이드 1

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

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

슬라이드 1

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

More information

Microsoft PowerPoint - 5장 정렬

Microsoft PowerPoint - 5장 정렬 01. 버블 02. 삽입 03. 퀵 04. C 표준 라이브러리의 퀵 정렬 정렬 정렬 정렬 함수 정렬은물건을크기순으로오름차순이나내림차순으로나열하는것 정렬은컴퓨터공학분야에서가장기본적이고중요한알고리즘중의하나 정렬은자료탐색에있어서필수적이다. ( 예 ) 만약사전에서단어들이정렬이안되어있다면? 정렬은왜하는가? 학생들의레코드 이름학번주소연락처 레코드 필드 필드 필드 필드

More information

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를 리스트에대한설명중틀린것은 구조체도리스트의요소가될수있다 리스트의요소간에는순서가있다 리스트는여러가지방법으로구현될수있다 리스트는집합과동일하다 다음은순차적표현과연결된표현을비교한것이다 설명이틀린것은 연결된표현은포인터를가지고있어상대적으로크기가작아진다 연결된표현은삽입이용이하다 순차적표현은연결된표현보다액세스시간이많이걸린다 연결된표현으로작성된리스트를 개로분리하기가쉽다 다음은연결리스트에서있을수있는여러가지경우를설명했는데잘못된항목은

More information

슬라이드 1

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

More information

Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레

Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레 Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레드 블랙 트리를 구현하고자 한다. 1.1 2-3트리와 동등한 레드 블랙 트리 2-3트리와 동등한

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070> /* */ /* LZWIN.C : Lempel-Ziv compression using Sliding Window */ /* */ #include "stdafx.h" #include "Lempel-Ziv.h" 1 /* 큐를초기화 */ void LZ::init_queue(void) front = rear = 0; /* 큐가꽉찼으면 1 을되돌림 */ int LZ::queue_full(void)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 C 언어포인터정복하기 16 강. 포인터로자료구조화하기 TAE-HYONG KIM COMPUTER ENG, KIT 2 학습내용 구조체멤버와구조체포인터멤버 다른구조체 ( 변수 ) 를가리키는구조체 ( 변수 ) 연결된리스트 의구성및관리 포인터로 연결된리스트 탐색하기 3 중첩구조체에자료저장하기 중첩된구조체변수에값저장하기 struct person { char PRID[15];

More information

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B65FC3E2BCAEBCF6BEF7>

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

More information

슬라이드 1

슬라이드 1 Data Structure & Algorithms SANGJI University KO Kwangman () 자료 (data) 1. 자료와정보 현실세계로부터의단순한관찰이나측정을통하여수집한사실이나개념의값들또는값들의집합. 정보 (information) 의사결정에도움을주기위해유용한형태로다시작성된 (= 가공 ) 자료. Data Structure & Algorithms

More information

ABC 10장

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

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

Microsoft PowerPoint - 자료구조2008Chap06

Microsoft PowerPoint - 자료구조2008Chap06 제 6 장연결리스트 연결리스트개요 2 일정한순서를가지는데이터요소들을표현하는방법중의하나이다. 배열과다르게데이터요소들의논리적인순서만유지되고기억장소내에서는각데이터요소들은논리적인순서와는상관없는임의의위치를가지도록하는자료구조이다. 연결리스트에서는각데이터요소들이기억장소내의어떤위치에어떤항목이있는지를표시해주어야한다. 이를위해데이터요소에는데이터값 (value) 뿐만아니라위치정보

More information

Ch.8 Procedures and Environments

Ch.8 Procedures and Environments Chapter 9 정렬 (sorting) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 정렬 (sorting) 이란? 정의 물건을크기순으로오름차순이나내림차순으로나열하는것 컴퓨터공학분야에서가장기본적이고중요한알고리즘중의하나 정렬은자료탐색에있어서필수적. ( 예 ) 만약사전에서단어들이정렬이안되어있다면? 정렬알고리즘의개요

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.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 학습목표 포인터를 사용하는 다양한 방법에

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

Microsoft PowerPoint - 자료구조2008Chap07

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

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores 프로젝트정리 1주차 : 미로를텍스트파일로만들어출력하는프로그램작성. 2주차 : 텍스트형태의미로를 MC의그래픽기능을이용하여그리는프로그램작성. 3주차 : 미로에서길찾는프로그램작성. Dept. of CS, Sogang Univ. 1 DS를이용한미로길찾기문제 DS를이용한미로길찾기문제는 2주차까지설계한미로의출발점과도착점을연결하는가장짧은경로를탐색해출력하는문제이다. NxM

More information

<4D F736F F F696E74202D FBFACB0E120C0DAB7E1B1B8C1B6205BC8A3C8AF20B8F0B5E55D>

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

More information

슬라이드 1

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

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

5장 스택

5장 스택 강의내용 오늘강의내용 ( 월 7 일 ) 중갂고사문제풀이 9. 그래프의숚회. 최소비용신장트리 ( 가중치그래프 ) 예습 ( 월 일 ) : 장가중치그래프 ( 계속 ) 숙제 : 연습문제 (9 장 ) :,,,,,7,8, 번풀어보기 마감일 : 9 년 월 일 ( 화 ) 9. 그래프숚회 그래프숚회 주어진어떤정점을출발하여체계적으로그래프의모든정점들을방문하는것 그래프숚회의종류

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 - 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