CH06)자료구조.hwp

Similar documents
7장

슬라이드 1

08장.트리

Chap 6: Graphs

chap 5: Trees

chap 5: Trees

Microsoft PowerPoint - 제8장-트리.pptx

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

슬라이드 1

제 1 장 기본 개념

PowerPoint 프레젠테이션

05_tree

Chapter 4. LISTS

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

Chap 6: Graphs

03_queue

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

Chap 6: Graphs

Microsoft PowerPoint - lec07_tree [호환 모드]

Microsoft PowerPoint - Chap5 [호환 모드]

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

입학사정관제도

Microsoft PowerPoint - chap10_tree

Microsoft PowerPoint - 08-chap06-Queue.ppt

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

슬라이드 제목 없음

2002년 2학기 자료구조

Microsoft PowerPoint - 자료구조2008Chap07

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B62D DBFB5BBF3BCF6BEF72DC5E4BFE4C0CFBCF6BEF72E >

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B65FC3E2BCAEBCF6BEF7>

슬라이드 1

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

중간고사 (자료 구조)

06장.리스트

PowerPoint 프레젠테이션

C 언어 강의노트

Microsoft PowerPoint - 08-Queue.ppt

Chapter 4. LISTS

OCW_C언어 기초

Ch.1 Introduction

chap x: G입력

슬라이드 1

Microsoft PowerPoint - 07-chap05-Stack.ppt

슬라이드 1

슬라이드 1

Microsoft PowerPoint - 제4장-스택과큐.pptx

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

Chapter 08. 트리(Tree)

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

슬라이드 1

03장.스택.key

11장.그래프

02장.배열과 클래스

< B3E220C1A632C8B820C4C4C7BBC5CDBFEEBFEBBBE72041C7FC28C3D6C1BE292E687770>

Microsoft PowerPoint - ch07 - 포인터 pm0415

03장.스택

ABC 10장

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

Microsoft PowerPoint - chap04-연산자.pptx

슬라이드 1

슬라이드 1

Algorithms

Algorithms

5.스택(강의자료).key

슬라이드 1

5장 스택

슬라이드 1

데이터구조 (Chapter 3: Stacks and Queues) 2011 년봄학기 숙명여자대학교이과대학멀티미디어과학과박영호

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

PowerPoint Presentation

슬라이드 1

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

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

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

4장

4장. 순차자료구조

Microsoft PowerPoint - 제3장-배열.pptx

2. QUEUE OPERATIONS Initialize the queue Insert to the rear of the queue (also called as Enqueue) Remove (Delete) from the front of the queue (also ca

untitled

쉽게배우는알고리즘 9장. 그래프알고리즘

11장 포인터

Microsoft PowerPoint - logo_3.ppt [호환 모드]

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

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

설계란 무엇인가?

PowerPoint 프레젠테이션

슬라이드 1

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

11장 포인터

Microsoft PowerPoint - 05-chap03-ArrayAndPointer.ppt

Microsoft PowerPoint - ch08_큐 [호환 모드]

Chapter 06. 스택(Stack)

슬라이드 1

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

adfasdfasfdasfasfadf

슬라이드 1

Observational Determinism for Concurrent Program Security

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

1장. 리스트

Transcription:

자료구조 (Data Structure) ) 자료구조의정의 프로그램에서사용하기위한자료를저장매체에저장하는방법및각자료간의관계, 처리방법을분석하는이론 자료의표현과연산의기초과학이다. 일련의자료들을조직화, 구조화시킨다. 모든자료구조에대하여연산처리가가능하다. 구현된자료구조에따라프로그램실행시간이다르다. 2) 자료구조의목적 ( 이유 ) 실제적으로물리적인저장장치는일정한규칙으로하나의선형형태로존재하기때문에그특성에맞게적절한형태로 자료를저장배치하여원하는데이터의검색및관리를보다효율적으로운영하기위해서사용된다. 3) 자료구조의이용에따른분류 자료를어떻게기억장치에저장할것인가? 어떤순서로정리할것인가? 기록된자료에서원하는것을어떻게찾아낼것인가? 기록된자료에색인을이용한검색방법을구현할수있는가? 파일편성 : 데이터를기억장치에저장할때파일구조 정렬 : 기억장치내의데이터를일정순서로나열 검색 : 기억장치에서원하는데이터를찾는다. 인덱스 : 파일에서특정데이터를빠르게찾기위한색인 4) 자료구조의분류 선형구조 ( 순차리스트 ) 리스트 배열 선형리스트 연결리스트 스택 큐 데크 포인트사용 : 연결리스트 미사용 : 선형리스트, 배열, 스택, 큐, 데크 비선형구조 ( 비순차리스트 ) 트리 그래프 선형구조 : 배열 (Array) ) 배열의개념 배열은동일한크기와형식으로구성된연속적인기억공간을의미한다. 2) 배열의종류 차원배열 [ ]

배열요소 A() A(2) A(3) A(4) -> (Data) A B C D 22차원배열 A(,) A(2,) A(,2) A(2,2) A(,3) A(2,3) A(,4) A(2,4) A(N,M) 의배열 - 행우선기준의위치찾기 : (i-)n + j - 열우선기준의위치찾기 : (j-)m + I A(3,) A(3,2) A(3,3) A(3,4) A(4,) A(4,2) A(4,3) A(4,4) [i 는행, j 는열 ] 33차원배열 3차원배열의주소 : A(L,M,N) 에서 A(i,j,k) 의주소 행우선 : α+(i-)mn + (j-)n + (k-) 열우선 : α+(k-)lm + (j-)l + (i-) 4배열의응용 스트링 (String) : 연속적인저장공간에기억된문자열 희소행렬 (Sparse Matrix) : 각원소의값이 "0" 인항들이많은행렬 선형구조 : 스택 (Stack) ) 스택의주요특성 리스트의한쪽으로만삽입과삭제가이루어진다. 후입선출방식 (LIFO: Last In First Out) 스택포인터 : 마지막데이터의기억공간을가르킨다. 스택의활용도 부프로그램호출시복귀주소저장 함수호출의제어순서 인터럽트발생후복귀주소 후위표기법 (Postfix Notation) 으로표현된산술식을연산 0주소지정방식명령어의저장 재귀 (Recursive) 프로그램순서제어 컴파일러를이용한프로그램언어번역 스택의모양과구현 삽입 (PUSH) 5 삭제 (PUSH) if top n then overflow else top = top + stack(top) 삽입 4 3 2 이미자 최불암 이순재 Top(Stack Pointer) Bottom if top 0 then underflow else 삭제 stack(top) top = top- [ 2 ]

선형구조 : 큐 (Queue) ) 큐의주요특성 한쪽에는반드시삽입, 또다른한쪽에는반드시삭제가이루어진다 선입선출 (FIFO: First In First Out) 큐의구조는삽입 (rear) 과삭제 (front) 시앞으로만이동하기때문에한번사용한기억공간은사용할수없다. 환형큐 ( 원형 ) 로보완 큐의활용도 운영체제의운영스케줄링 키보드입력버퍼 스풀 (spool) 기능운용 큐의모양과구현 삭제 (DROP) 이순재 최불암 이미자 삽입 (PUSH) 2 3 4 5 Frot Pointer( 삭제 ) Rear Pointer( 삽입 ) if rear = n then overflow else rear = rear + Queue(rear) 삽입 if front = rear then underflow else front = front + 삭제 Queue(front) 선형구조 : 데크 (Deque: Double Ended Queue) ) 데크의주요특성 스택과큐의장점을조합한구조로삽입및삭제가모두일어난다. 삽입과삭제가양쪽모두일어나므로포인터 ( 지시부분 ) 는두개다. 출력 입력입력 출력 입력은한쪽에서출력은양쪽에서일어나는입력제한 (Scroll) 출력 입력 출력 출력은한쪽에서입력은양쪽에서일어나는출력제한 (Shelf) 입력 입력 출력 선형구조 : 리스트 (List) ) 선형리스트 (Linear) 배열과같이데이터가차례차례자료의빈공간없이연속적인기억장소에저장되는리스트 연접리스트 (Dense List) 또는축자구조 (Sequential List) 라고도한다. 주요특징 [ 3 ]

가장간단한자료구조이며접근속도가빠르다. 중간에자료삽입시에는반드시연속된빈공간이있어야한다. 기억장소의밀집도가가장높다 ( 연속적인저장 ) 자료의삽입과삭제시자료의이동이요구되므로작업이불편하다. ( 중간이꽉차있음 ) n개의자료가있을때 - 삽입시평균이동횟수 = (n + ) / 2 - 삭제시평균이동횟수 = (n - ) / 2 2) 연결리스트 (Linked) 데이터의저장순서는상관없지만자료항목의순서에따라각노드에포인터를두어서로연결시키는자료구조 포인터는프론트포인터 ( 처음위치 ) 와널포인터 ( 마지막노드, 자료없음 ) 가있다. 노드는데이터부분과다음의노드를나타내는포인터로구성된기억공간이다. 주요특징 노드의삽입및삭제가용이 연속적인저장공간이없어도저장가능 ( 메모리와에독립적 ) 연결을위한포인터 ( 링크 ) 부분이요구되며그에따른기억공간의증가 ( 효율이적음 / 접근속도저하 ) 희소행렬 ( 중복값 ) 을이와같이표현하면자원이절약됨 비선형구조 : 트리 (Tree) 트리의전체구성 근 (Root) 노드 A LEVEL 노드 B C D LEVEL 2 E F G H I J LEVEL 3 K L N LEVEL 4 ) 트리구조관련용어 정점 ( 노드 ) 과선분 ( 가지 ) 을이용한사이클이이루어지지않는형태로조직도, 연산수식의자료표현 노드 : 트리의기본요소이며자료항목및다른항목과의연결가지를합친전체 근 (Root) 노드 : 트리구조상의가장최상위노드 노드디그리 (Degree)( 노드차수 ): 각노드에서뻗어나온가지수 단말노드 (Terminal)( 잎 [leaf] 노드 ): 자식이없는노드 ( 디그리가 0이다.) 비단말노드 (Non-terminal): 자식이하나이상인노드 조상노드 (Ancestors: 임의의노드에서근노드까지경로중에있는노드 자식노드 (Son): 임의의노드의하위 ( 다음 ) 노드 부모노드 (Parent): 임의의노드상위 ( 이전 ) 노드 형제노드 (Brother): 동일한부모를가지는노드 깊이 (Depth): 트리가가지는최대레벨 트리의디그리 ( 트리의차수 ) : 노드의디그리중에서제일많은노드의수 2) 트리의종류 이진트리 (Binary tree) [ 4 ]

모든노드의차수가 2 이하인트리 2포화이진트리 (Full binary tree, 정이진트리 ) 깊이가 n일경우, n번째레벨의노드의수가 2n-개이고, 트리의전체노드수가 2n-개인트리 마지막레벨까지꽉채워진트리를말한다. A B C D E F G 3 전이진트리 (Complete binary tree) 깊이가 n 일때, n- 레벨까지정이진트리로된트리 4K 진트리 모든노드의차수가 K 이하인트리 5 사향이진트리 (Skewed binary tree) 왼쪽이나오른쪽으로만치우쳐진트리 A B C 6 스레드 (Threaded) 이진트리 이진트리에서발생하는널링크부분을트리운행에필요한다른노드의포인터 ( 다른노드를가르키는지시자 ) 로사용되 는형태를가진다. 3) 트리 (Tree) 의이진트리로의변환 형제노드끼리연결하고, 연결한부분중기존의가지는삭제한다. 트리를이진트리로변환하는이유는널링크점유율이적기때문이다. 4) 이진트리 (Tree) 의메모리표현 배열에표현하는방법 : 엑세스가효율적이지만사향이진인경우공간낭비가심하다 링크를이용하는방법 : 노드의삽입, 삭제가쉽고, 기억공간을절약하지만속도가저하된다. 5) 트리운행의규칙 근노드의위치분석 - PreOrder에서근노드는제일왼쪽에위치한다. - InOrder에서근노드는양쪽의하위노드개수의중간에위치한다. - PostOrder에서근노드는제일오른쪽에위치한다. - 하위의노드운행시에는하위노드의입장에서 ROOT가된다. Preorder 운행 ROOT -> LEFT -> RIGHT 순의운행이다. Inorder 운행 LEFT -> ROOT -> RIGHT 순의운행이다. Postorder 운행 LEFT -> RIGHT -> ROOT 순의운행이다. [ 5 ]

6) 수식표기법 산술식을계산하기위해서기억공간에기억시키는방법으로이진트리구조사용한다. 이진트리의각운행법 (PreOrder, Inorder, PostOrder) 으로운행을하게되면그운행방법에따라전위 (Prefix 폴리쉬 ), 중위 (Infix), 후위 (Postfix 역폴리쉬 ) 표기법이된다. Infix는연산의스택구조에맞는 Prefix또는 Postfix로바꾸어처리한다. 수식표기법모양 M + Prefix( 전위표기법 ): +MN Infix( 중위표기법 ): M+N N Postfix( 후위표기법 ): MN+ 비선형구조 : 그래프 (Graph) ) 그래프의기본개념 그래프는정점V(Vertex) 와간선 (Edge) 의두집합으로이루어진구조이다. 망 (Network), 이항관계, 연립방적식, 무향선분해법에사용된다. 트리는사이클이없는그래프이고, 그래프는사이클이있다. 2) 그래프의종류 무방향그래프 : 정점들의쌍의순서가없는그래프 2 3 4 2 방향그래프 : 간선들의방향을표시하는그래프 2 3 3) 그래프의관련용어 Loop 한정점에서다시자신에게이어지는간선집합 2차수 (Degree) 무방향그래프 : 한정점에연결된간선의수 방향그래프 - 진입차수 (Indegree): 한정점에도찰하는방향간선의수 - 진출차수 (Outdegree): 한정점에서출발하는방향간선의수 - 차수 = 진입차수 + 진출차수 3 경로 (Path) [ 6 ]

경로길이 : 경로상에있는간선의수 단순경로 : 모든간선이서로다를때의경로로같은간선을두번이상지나지않는다. 기본경로 : 한경로상에있는모든정점이유일할때경로로같은정점을두번이상지나지않는다. 사이클 : 같은정점에서시작과끝이이루어지는경로 최대사이클 : 사이클을이루는경로중최대경로길이 4) 그래프의표현법 방향그래프에서 관계를나타내는행렬의원소를 라할때, 방향간선이있으면행렬의 = 이고없으면 =0 으로행렬 ( 배열 ) 에표기한다. 방향그래프의변형모양 2 3 4 5 0 0 0 0 2 3 4 5 2 0 0 0 0 3 0 0 0 0 4 0 0 0 0 5 0 0 0 0 무방향그래프에서 와 가서로인접하면 = 이고인접하지않으면 =0 으로표현한다. 무방향그래프의변형모양 2 3 4 2 3 4 0 2 0 3 0 4 0 5) 최소비용신장트리 (MST, Minimum-Cost Spanning Tree) 그래프상에서최소비용으로모든정점을방문하는방법으로각선에기술된값이가장적은간선을연결하여만든다. 비용이가장적은순서대로선택 선택된간선이 Cycle 을형성하면제외한다. 2 5 2 5 2 2 6 20 7 5 3 6 2 7 5 3 44 4 5 4 8 0 5 4 8 6) 임계경로 (Critical Path) 작업의시작에서종료될때까지가장긴경로 [ 7 ]