2002년 2학기 자료구조

Similar documents
4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

chap 5: Trees

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

chap x: G입력

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

신림프로그래머_클린코드.key

C프로-3장c03逞풚

C++ Programming

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

11강-힙정렬.ppt

Microsoft PowerPoint - [2009] 02.pptx

제 1 장 기본 개념

06장.리스트

MAX+plus II Getting Started - 무작정따라하기

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

<4D F736F F F696E74202D2031C1D6C2F72D31C2F7BDC32028B0ADC0C7C0DAB7E D20C7C1B7CEB1D7B7A1B9D6BEF0BEEE20B0FAB8F1BCD2B

6장정렬알고리즘.key

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

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

01....b

00목차

2007백서-001-특집

(291)본문7

PowerPoint 프레젠테이션

슬라이드 1

Chapter 4. LISTS

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - ch00 - Introduction to Programming Language Lecture

Chap 6: Graphs

chap01_time_complexity.key

쉽게 풀어쓴 C 프로그래밍

03장.스택.key

Microsoft PowerPoint - Chap1-전반부 [호환 모드]

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

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

Index

C++ Programming

Frama-C/JESSIS 사용법 소개

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

Microsoft PowerPoint - 6장 탐색.pptx

2014밝고고운동요부르기-수정3

2005프로그램표지

설계란 무엇인가?

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

설계란 무엇인가?

PowerPoint 프레젠테이션

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ

1

chap8.PDF

01-OOPConcepts(2).PDF

(Microsoft PowerPoint - 11\300\345.ppt [\310\243\310\257 \270\360\265\345])

슬라이드 1

untitled

02장.배열과 클래스

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Microsoft PowerPoint - Chap5 [호환 모드]

Discrete Mathematics

DBPIA-NURIMEDIA

chap10.PDF

Microsoft PowerPoint - 9ÀÏ°_ÂüÁ¶ÀÚ.ppt


PowerPoint 프레젠테이션

14장.탐색

C++ Programming

......


PowerPoint Template

(specifications) 3 ~ 10 (introduction) 11 (storage bin) 11 (legs) 11 (important operating requirements) 11 (location selection) 12 (storage bin) 12 (i

Algorithms

김기남_ATDC2016_160620_[키노트].key

슬라이드 1

Microsoft PowerPoint - Chapter_09.pptx

K&R2 Reference Manual 번역본

강의10

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

PowerPoint Presentation

Microsoft PowerPoint - C++ 5 .pptx

DBPIA-NURIMEDIA

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관

2007_2_project4

06_sorting

OOP 소개

Microsoft PowerPoint - ch07 - 포인터 pm0415

C++ Programming

02 C h a p t e r Java

080629_CFP °ø°³¿ë.hwp

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

슬라이드 제목 없음

초보자를 위한 C# 21일 완성

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 ±×to0.

ÅëÁõ¼Ò½ÄÁö50È£

final_thesis

초보자를 위한 C++

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 ±×to0.

ISO17025.PDF

Algorithms

자바 프로그래밍

Transcription:

자료구조 (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) Data Structure Data와그와연관된 Algorithm을학습및연구 2

1. Basic Concepts (1) Data Abstraction and Encapsulation (2) Algorithm Specification (3) Performance Analysis and Measurement 3

1.1 Overview : System life cycle (1) Requirements( 요구정의 ) (2) Analysis( 분석 ) (3) Design( 설계 ) 4

1.1 Overview : System life cycle (4) Refinement and Coding( 정제와코딩 ) (5) Verification( 검증 ) - Correctness proofs - Testing - Error removal Implementation( 구현 ) 5

1.2 Object-oriented Design 1.2.1 Algorithm Decomposition vs Object-oriented Decomposition 1.2.2 Definitions 1) Object 2) Object-Oriented Programming 3) Object-Oriented Language 6

1.3 Data Abstraction and Encapsulation (1)Data Encapsulation (Information Hiding) (2) Data Abstraction (3) Data Type (4) Abstract Data Type [Example 1.1] ADT Natural Number 7

1.5 Algorithm Specification 1.5.1 Introduction 1) Definition of algorithm 2) Representation of algorithm - Natural language(english) - Graphic representation(flowchart) - Program language(c++) 8

[Example 1.2] selection sort 1) 요구정의 : 입 출력정의 - 입력 : 정렬되지않은정수 ( 개수 : 고정 (n?), 가변 ) - 출력 : 정렬된정수 n개 2) 분석 : 세분화 입력 - 정렬 - 출력 9

[Example 1.2] selection sort 3) 설계가. 입력 - 입력방법 : 파일, 화면, 생성 - 자료구조 : 정수배열나. 정렬 - 정렬방법표현 ( 자연어 ) 정렬되지않는정수들중에서가장작은값을찾아서정렬된리스트다음자리에놓는다. 다. 출력 - 출력방법 : 파일, 화면 10

[Example 1.2] selection sort 4) 코딩가. 주프로그램 int main() { int arr[100], n; n = input_file(arr); // 자료입력 ( 파일 ) sort(arr, n); // 정렬 output_con(arr, n); // 출력 ( 화면 ) return 0; 나. 함수프로그램 - 입력함수 : int input_fun(int*); - 정렬함수 : void sort(int*, const int); - 출력함수 : void output_fun(int*, const int); 11

[Example 1.2] selection sort - 파일입력 int input_file(int *a) { int i, n=0; ifstream In; In.open("sort.dat"); In >> i; while (In){ a[n++] = i; In >> i; In.close(); return n; 12

[Example 1.2] selection sort - 정렬 ( 프로그램 1.8) void sort(int *a, const int n) { for(int i=0; i<n; i++) { int j=i; for(int k=i+1; k<n; k++) if(a[k]<a[j])j=k; int temp=a[i]; a[i]=a[j]; a[j]=temp; return; 13

[Example 1.2] selection sort - 화면출력 void output_con(int *a, const int n) { int i; cout << endl << "* sorted list *" << endl; for(i=0; i<n; i++) cout << setw(4) << a[i]; cout << endl; return 0; 14

1.5 Algorithm Specification 1.5.2 Recursive Algorithms Direct recursion Indirect recursion 15

[Example 1.3] Binary search 1) 요구정의 : 입 출력정의 - 입력정렬된정수 ( 개수 : n?), 탐색정수 - 출력탐색정수가있을때 : 위치번호 (index) 탐색정수가없을때 : -1 2) 분석 : 세분화정렬된정수입력 { 탐색정수입력 - 탐색 - 출력 반복 16

[Example 1.3] Binary search 3) 설계가. 입력 - 입력방법 : 정렬된정수 ( 파일, 생성 ), 탐색정수 ( 화면 ) - 자료구조 : 정렬된정수 ( 배열 ), 탐색정수 ( 정수형변수 ) 나. 탐색 - 탐색방법표현정렬된정수들중에서가장가운데위치한정수 (middle) 와탐색정수 (x) 를비교하여 middle > x 일때앞부분에서탐색반복 middle < x 일때뒷부분에서탐색반복 middle = x 일때탐색완료다. 출력 - 출력방법 : 화면 17

[Example 1.3] Binary search 4) 코딩가. 주프로그램 int main() { int arr[20], n; int x, p; n = input_sorted_file(arr); cout << "Enter one of data to search : "; cin >> x; while(!cin.eof()){ //end of data : Ctrl-z p = BinarySearch(arr, x, n); cout << p << endl; cout << "Enter one of data to search :"; cin >> x; return 0; 18

[Example 1.3] Binary search 나. 함수프로그램 - 탐색함수 비순환프로그램 ( 프로그램 1.10) 순환프로그램 ( 프로그램 1.11) 19

[Example 1.3] Binary search - 비순환프로그램 ( 프로그램 1.10) int BinarySearch(int *a, const int x, const int n) { for(int left=0, right=n-1; left<=right;) { int middle=(left+right)/2; // cout << left << right << middle << endl; if(x>a[middle])left=middle+1; if(x<a[middle])right=middle-1; if(x==a[middle])return middle; return -1; 20

[Example 1.3] Binary search - 순환프로그램 ( 프로그램 1.11) int BinarySearch(int *a, const int x, const int left, const int right) { if(left<=right) { int middle=(left+right)/2; // cout << left << right << middle << endl; if(x>a[middle])return BinarySearch(a, x, middle+1, right); if(x<a[middle])return BinarySearch(a, x, left, middle-1); if(x==a[middle])return middle; return -1; 21