본문 바로가기

자료구조

1-4강 - Data abstraction

0. Intro

1) basic data type of C

char, int, float, double, short, long, unsigned

2) mechanisms for grouping data together

1> array (homogenius)

2> struct (heterogenius)

3) pointer data type

각 data type마다 이를 가리키는 pointer data type이 존재한다.

 

1. Data type

1) 정의

1> 그 자료 자체(collection of objects) 뿐 아니라

2> 그 자료에 적용되는 연산들(operation)

 

2. Abstract data type

1) 정의

1> 자료(objects)와 자료에 대한 연산(operation)들을 모아놓은 것

2> 구현 방법이나 적용 방법등을 명시(specify)하지 않고 

3> 순수하게 기능이 무엇인지만 나열

 

ex> 스택의 형태는 LIFO값들의 모임이고 push, pop 드의 연산이 있다.

하지만 스택이 내부적으로 array로 구현되는지 linked list로 구현되는지 등등의 세부사항은 다루지 않는다.

(이런 걸 다루면 data structure 영역)

 

2) 구성 함수

1> constructor (creator) 

- 새로운 instance 생성 (초기화된 값 제공)

2> transformer

- 하나 이상의 instance를 이용해서 (지정된 type의) 인스턴스를 생성

ex> 덧셈 정도를 떠올리면 된다.

3> observer (reporter)

- 인스턴스의 type에 대한 정보를 준다. (변경시키지는 않는다.)

3) 기타

1> 예시: stack, queue, linked list, BST, heap, graph

2> 위 예시와 함께 각 ADT마다 할 수 있는 '행동'들도 정의되어 있다.

3> abstract는 JAVA의 객체지향과 같은 맥락이다.