프로그램은 자료(Data)와 연산(Algorithm)으로 구성된다.
여기서 자료는 분류 기준인 구조에 따라 4가지로 나누어지게 된다.
자료구조 |
단순구조 (Simple) |
정수(int) | |
실수(float, double) | |||
문자열(char) | |||
선형구조 (Linear) |
리스트(List) | 선형리스트 | |
연결리스트 | |||
스택(Stack) | |||
큐(Queue) | |||
데크(DeQue) | |||
비선형구조 (Non-Linear) |
트리(Tree) | 일반 트리 | |
이진 트리 | |||
그래프(Graph) | 방향 그래프 | ||
무방향 그래프 | |||
파일구조 (File Organization) |
순차파일 | ||
색인파일 | |||
직접파일 |
- 선형구조: 자료들 앞뒤 관계가 1:1 선형 관계 / 연속적인 기억 저장소에 자료 저장
- 리스트: 순서가 정해진 목록 (목차)
- 스택: Last in first out (사물함)
- 큐: First in first out (대기 줄)
- 비선형구조: 자료들 앞뒤 관계가 1:다 or 다:다 관계 / 비연속적인 기억장소에 자료 저장
- 트리: 계층적 구조
- 그래프: 노드 - 간선, 서울에서 부산까지 가는 방법
- 파일구조: HDD에 저장되는 파일에 대한 자료 구조
#추상 자료형(ADT, Abstract Data Type)
1. 뜻: 객체와 그 연산에 대한 명세가 그 표현으로부터 분리된 데이터 타입
2. 추상: 세부적이고 복잡한 것을 생략하고 대표적인 것만을 나타내는 방법
3. 사용이유는: 자료구조를 표현하는 가장 대표적인 방법 중 하나
4. 사용목적은: 자료구조의 내부 구현 소스에 대한 분석 없이 바로 이용 가능하다. -> 정보 은닉이 가능한데 자료구조를 사용할 수 있는 인터페이스만 정의하고 중요하지 않은 정보를 숨기는 것이다. 파이썬 등 객체지향 언어의 'Class' 라 보면된다.
5. 추상 자료형 예시: 복소수, 리스트, 스택, 큐, 맵, 우선순위, 큐, 집합
'Data Structure [C] > 문돌이도 할 수 있는 [C언어 자료구조]' 카테고리의 다른 글
#6 [C 자료구조] 알고리즘 성능의 척도: 시간 복잡도의 계산법 (0) | 2019.04.18 |
---|---|
#5 [C 자료구조] 지옥의 알고리즘 성능분석 (0) | 2019.04.18 |
#4 [C 자료구조] 그래서 알고리즘이 뭔데? (0) | 2019.04.17 |
#2 [C 자료구조] 자료구조와 알고리즘을 배우는 목적? (1) | 2019.03.13 |
#1 [C 자료구조] 문돌이, 알려준다 알고리즘 (0) | 2019.03.13 |