자료구조란?
데이터에 대한 효울적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장 체계 데이터의 모임,
데이터 간의 관계, 데이터에 적용할 수 있는 함수나 명령을 포함한 (프로그램에서) 자료들을 정리하여 보관하는 구조
알고리즘의 조건
- 입력 : 0개 이상의 입력이 존재
- 출력 : 1개 이상의 출력이 존재
- 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야함
- 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 함
- 유효성 : 각 명령어들은 실행 가능한 연산이여야 함
자료형
기초 자료형 : char, int float, double
파생 자료형 : 배열 포인터
사용자 정의 자료형 : 구조체, 공용체, 열거형
데이터 집합과 연산의 집합
int 자료형
데이터 | {-INT_MIN, ... , - 2, -1, 0, 1, 2, ..., INT_MAX } |
연산 | +, =, *, /, %, ==, >, < |
자료형은 일련의 데이터 및 연산이다.
추상 데이터 타입은 데이터 구조와 그에 대한 연산의 수학적 모델
즉, ADT 는 DS(Data structure) 가 구현되는 거에 대한 인터페이스
추상화
- 사용자에게 중요한 정보만 보여주고
- 중요하지 않은 구현 세부 사항은 감추는 것
추상 데이터 타입(ADT)
자료형을 추상적(수학적)으로 정의한 것
데이터나 연산이 무엇(What)인가는 정의되지만
데이터나 연산을 어떻게(How) 구현할 것인지는 정의하지 않음
추상 자료형과 자료구조는 무슨 관계가 있는가?
→ 추상 자료형의 구현을 통해서 자료구조를 만들어 낼수있음
추상 자료형은 왜 필요한가? 추상 자료형을 왜 사용하는가?
→ 핵심적인 구조나 동작에만 집중하기위해
🔖 참고자료
- C로 쉽게 풀어쓴 자료구조 - 생능출판사
'CS > 자료구조' 카테고리의 다른 글
연결리스트 (0) | 2024.07.09 |
---|---|
큐(queue)와 덱(deque) (0) | 2024.07.02 |
스택 (Stack) (0) | 2024.07.01 |
배열, 구조체, 포인터 (0) | 2024.06.28 |
순환 (0) | 2024.01.26 |