Transcript 01-1
DONGEUI UNIVERSITY Data structures 01.1: an Introduction 동의대학교 멀티미디어공학과 이광의교수 course schedule 1주: 기초지식 I ► 자료구조란 무엇인가? ► C++의 클래스 ► C++ 포인터 2주: 기초지식 II ► 재귀함수 ► 수학적 귀납법 3주~7주: 리스트 / 스택 / 큐 / 정렬 8주: 중간시험 9주~14주: 트리 / 우선순위큐 / 탐색 / 그래프 15주: 기말시험 [email protected] Dept. of Multimedia Engineering, DongEui Univ.(2) Today’s topic 자료구조의 정의 ► 정의1: 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. ► 정의2: 자료구조는 추상자료형이다. ► 정의3: 자료구조는 잘 알려지고 유용한 추상자료형이다. C++클래스: 추상자료형의 구현 ► 클래스 기초 ► 클래스 구현 예 1 ► 클래스 구현 예 2 포인터 ► 포인터 기초 ► 포인터 활용 예 1 [email protected] Dept. of Multimedia Engineering, DongEui Univ.(3) The 1st Definition of data structure 자료구조란 무엇인가? ► 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다.[wiki] 시작하는 예제 ► 유선방송 시청에 꼭 필요한 것은? • TV • 리모트 컨트롤러 • 채널목록 [email protected] Dept. of Multimedia Engineering, DongEui Univ.(4) A Starting example: t.v. channel list 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ch 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [email protected] 채널이름 시네마TV 금강방송1 금강방송2 금강방송3 JTV CJ홈쇼핑 KBS1 KBS2 GS홈쇼핑 MBC 현대 홈쇼핑 EBS MGM 농수산TV inet(iTV녹화) 우리 홈쇼핑 리얼TV K-TV OUN 아리랑TV EBS plus1 EBS plus2 YTN MBN 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ch 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 채널이름 CEM TV 코미디TV NHK월드 프리미엄 CNN 불교방송 가톨릭 방송 CTS 기독교 TV CBS History 내셔널지오그래픽 Q채널 JEI스스로방송 투니버스 챔프 어린이TV English TV new 중화TV KBS Sports SBS Sports MBC ESPN SBS GOLF 퀴니 MBC 게임 온게임넷 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ch 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 채널이름 FTV 바둑TV FOOD채널 On Style GTV Home CGV OCN CNTV 무협TV MBC Movies XTM 수퍼액션 KBS 드라마 SBS 드라마 MBC 드라마넷 Xports KMTV m.net MTV Dept. of Multimedia Engineering, DongEui Univ.(5) A Starting example: t.v. channel list 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ch 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [email protected] 채널이름 시네마TV 금강방송1 금강방송2 금강방송3 JTV CJ홈쇼핑 KBS1 KBS2 GS홈쇼핑 MBC 현대 홈쇼핑 EBS MGM 농수산TV inet(iTV녹화) 우리 홈쇼핑 리얼TV K-TV OUN 아리랑TV EBS plus1 EBS plus2 자료구조란 무엇인가? ► 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 이용의 의미는 무엇인가? ► 채널 검색: chNameOf(5); chNumOf(“리얼TV”); ► 채널 삭제: deleteNum(14); deleteName(“MGM”); ► 채널 추가: insertCh(14, “동의TV”); 효율적의 의미는 무엇인가? ► 채널번호에 따른 채널 검색 ► 채널이름에 따른 채널 검색 ► 삭제, 추가 Dept. of Multimedia Engineering, DongEui Univ.(6) A Starting example: t.v. channel list 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ch 31 3 4 5 35 15 18 58 51 30 61 2 21 40 49 17 42 39 27 47 38 12 33 26 [email protected] 채널이름 가톨릭 방송 금강방송1 금강방송2 금강방송3 내셔널지오그래픽 농수산TV 리얼TV 무협TV 바둑TV 불교방송 수퍼액션 시네마TV 아리랑TV 어린이TV 온게임넷 우리 홈쇼핑 중화TV 챔프 코미디TV 퀴니 투니버스 현대 홈쇼핑 CBS CEM TV 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ch 7 29 57 32 13 22 23 41 52 50 10 54 34 55 16 37 6 62 43 8 9 66 19 67 채널이름 CJ홈쇼핑 CNN CNTV CTS 기독교 TV EBS EBS plus1 EBS plus2 English TV FOOD채널 FTV GS홈쇼핑 GTV History Home CGV inet(iTV녹화) JEI스스로방송 JTV KBS 드라마 KBS Sports KBS1 KBS2 KMTV K-TV m.net 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ch 11 48 64 45 59 25 14 68 28 56 53 20 36 63 46 44 65 60 24 채널이름 MBC MBC 게임 MBC 드라마넷 MBC ESPN MBC Movies MBN MGM MTV NHK월드 프리미엄 OCN On Style OUN Q채널 SBS 드라마 SBS GOLF SBS Sports Xports XTM YTN Dept. of Multimedia Engineering, DongEui Univ.(7) A Starting example: t.v. channel list 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ch 31 3 4 5 35 15 18 58 51 30 61 2 21 40 49 17 42 39 27 47 38 12 [email protected] 채널이름 가톨릭 방송 금강방송1 금강방송2 금강방송3 내셔널지오그래픽 농수산TV 리얼TV 무협TV 바둑TV 불교방송 수퍼액션 시네마TV 아리랑TV 어린이TV 온게임넷 우리 홈쇼핑 중화TV 챔프 코미디TV 퀴니 투니버스 현대 홈쇼핑 자료구조란 무엇인가? ► 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 이용의 의미는 무엇인가? ► 채널 검색: chNameOf(5); chNumOf(“리얼TV”); ► 채널 삭제: deleteNum(14); deleteName(“MGM”); ► 채널 추가: insertCh(14, “동의TV”); 효율적의 의미는 무엇인가? ► 채널번호에 따른 채널 검색 ► 채널이름에 따른 채널 검색 ► 삭제, 추가 Dept. of Multimedia Engineering, DongEui Univ.(8) The 1st Definition of data structure 자료구조란 무엇인가? ► 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다.[wiki] ► 자료는 자료 자체뿐만 아니라 자료를 이용하고자 하는 이용방법(연산)을 포함한다. 채널목록 자료는 다음으로 구성된다. ► 자료: 채널번호와 채널이름 쌍들로 구성된 목록 ► 연산: 검색연산, 삭제연산, 추가연산, 등. [email protected] Dept. of Multimedia Engineering, DongEui Univ.(9) The 2nd Definition of data structure 자료구조란 무엇인가? ► 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다.[wiki] ► 자료구조는 추상자료형이다. 추상자료형은 무엇인가? ► 추상자료형은 객체의 명세와 그 연산의 명세가 객체의 표현과 연산의 구현으로부터 분리된 자료형이다. ► 추상자료형은 객체의 명세와 그 연산의 명세만을 의미한다. 채널목록에 대한 추상자료형은 무엇인가? ► ► ► ► 객체의 명세: 채널번호와 채널이름 쌍들의 집합 연산의 명세: 검색연산, 삭제연산, 추가연산 객체의 표현: 채널번호와 채널이름 쌍들의 집합을 어떻게 저장할 것인가? 연산의 구현: 위의 객체의 표현방법에 따른 연산의 실현 절차 [email protected] Dept. of Multimedia Engineering, DongEui Univ.(10) Examples of abstract data type 추상자료형의 예 ► ► ► ► C++의 각종 변수: int, bool, float, double, char 등 음료수자판기, 전화기를 포함하는 각종 가전제품 채널목록은 추상자료형인가? 이 세상에 존재하는 모든 객체(대상,물건,…)는 어떤 의미에서 추상자료형이다. [email protected] Dept. of Multimedia Engineering, DongEui Univ.(11) The 3rd Definition of data structure 자료구조란 무엇인가? ► 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다.[wiki] ► 자료구조는 추상자료형이다. ► 자료구조는 잘 알려지고 유용한 추상자료형이다. 자료구조 교과목은 무엇을 다루는가? ► 잘 알려지고 유용한 추상자료형 • 리스트, 스택, 큐, 트리, 그래프 ► 상기 추상자료형에 대한 다양한 형태의 구현 • 객체의 표현: 상기 객체를 어떻게 컴퓨터에 저장할 것인가? • 연산의 구현: 이러한 저장 방법에 대하여 연산은 어떻게 실현될 것인가? 추상자료형의 구현은 C++의 클래스를 이용하여 구현할 수 있다. [email protected] Dept. of Multimedia Engineering, DongEui Univ.(12) summaries 자료구조란 무엇인가? ► 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다.[wiki] ► 자료구조는 추상자료형이다. ► 자료구조는 잘 알려지고 유용한 추상자료형이다. 도대체 자료구조란 무엇인가? [email protected] Dept. of Multimedia Engineering, DongEui Univ.(13)