본문 바로가기

Data Structure [C]/문돌이도 할 수 있는 [C언어 자료구조]

#3 [C 자료구조] 자료구조의 분류

프로그램은 자료(Data)와 연산(Algorithm)으로 구성된다.

 

여기서 자료는 분류 기준인 구조에 따라 4가지로 나누어지게 된다.

자료구조

단순구조

(Simple)

정수(int)  
실수(float, double)  
문자열(char)  

선형구조

(Linear)

리스트(List) 선형리스트
연결리스트
스택(Stack)  
큐(Queue)  
데크(DeQue)  

비선형구조

(Non-Linear)

트리(Tree) 일반 트리
이진 트리
그래프(Graph) 방향 그래프 
무방향 그래프

파일구조

(File Organization)

순차파일  
색인파일  
직접파일  
  1. 선형구조: 자료들 앞뒤 관계가 1:1 선형 관계 / 연속적인 기억 저장소에 자료 저장
    1. 리스트: 순서가 정해진 목록 (목차)
    2. 스택: Last in first out (사물함)
    3. 큐: First in first out (대기 줄)
  2. 비선형구조: 자료들 앞뒤 관계가 1:다 or 다:다 관계 / 비연속적인 기억장소에 자료 저장
    1. 트리: 계층적 구조
    2. 그래프: 노드 - 간선, 서울에서 부산까지 가는 방법
  3. 파일구조: HDD에 저장되는 파일에 대한 자료 구조

 

#추상 자료형(ADT, Abstract Data Type)

1. 뜻: 객체와 그 연산에 대한 명세가 그 표현으로부터 분리된 데이터 타입

2. 추상: 세부적이고 복잡한 것을 생략하고 대표적인 것만을 나타내는 방법

3. 사용이유는: 자료구조를 표현하는 가장 대표적인 방법 중 하나

내부 구현 로직을 표현하지 않아도 된다!

 

4. 사용목적은: 자료구조의 내부 구현 소스에 대한 분석 없이 바로 이용 가능하다. -> 정보 은닉이 가능한데 자료구조를 사용할 수 있는 인터페이스만 정의하고 중요하지 않은 정보를 숨기는 것이다. 파이썬 등 객체지향 언어의 'Class' 라 보면된다.

정보 은닉(Information Hiding)

5. 추상 자료형 예시: 복소수, 리스트, 스택, 큐, 맵, 우선순위, 큐, 집합