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)