der Wille zur Macht,

[자료구조] 자료형, 자료구조

학습하면서 다음 웹페이지를 참조하였습니다.

https://rottk.tistory.com/entry/자료구조와-추상자료형

https://helloworld-88.tistory.com/82

https://wikidocs.net/68


데이터: 0과 1로 구성된 ‘나열’

값: 컴파일러/인터프리터 언어가 이진수로 된 데이터를 해석한 결과


자료형 (Data Type)

정의:

이진수로 된 데이터가 가질 수 있는 특정한 ‘값’들과, 그 값들로 할 수 있는 연산들의 ‘집합’ 을 자료형 이라고 한다.

  • 예) 정수 자료형: …-1,0,1,… 로 구성된 값들을 갖고 있고, 덧셈, 뺄셈, 곱셈, 나눗셈 등의 사칙연산으로 구성된 ‘집합’

특징:

  • 연산들은 아직 구체적으로 구현되지 않았다.
  • 따라서 자료형은 추상화 된 개념이다.
  • 프로그래밍 언어와 독립적으로 존재한다.
  • 어떤 데이터에 사람이 자료형을 부여할 수도 있고, 프로그래밍 언어가 알아서 부여하기도 한다.

역할:

컴파일러/인터프리터 언어가 데이터를 어떻게 해석하면 되는지 알려주는 ‘지침’

  • 이 지침이 뭐냐에 따라 데이터는 다르게 해석된다.
  • 이 지침은 데이터가 어떤 ‘값’을 가질 수 있고, 그 값들로 어떤 연산을 할 수 있는지 규정한다.

자료형 종류:

  • 원시자료형: 불리언, 정수, 실수, 문자 등
  • 복합자료형: 원시형 또는 복합자료형의 조합 (배열, 문자열 등)
  • 추상자료형: 주어진 어떤 값으로 할 수 있는 ‘연산들로만 구성된 집합’.

추상자료형은 값 말고 연산들로만 구성된 집합이다. 보통 어떤 값이 주어져도 상관없다.


추상자료구조

  • 추상자료형에 더해 각 연산의 시간복잡도까지 정의하면, 추상자료구조라고 한다.
  • 추상자료형과 마찬가지로, 각 연산의 실제 구현방법은 정의하지 않는다.

자료구조

Screen Shot 2021-10-13 at 20 59 25

[이미지 출처 : https://helloworld-88.tistory.com/82 ]

정의:

자료형을 특정한 프로그래밍 언어로 ‘구현’ 한 것.

$\Rightarrow$ 자료형의 연산이 모두 구체적 알고리듬으로 구현된 ‘클래스’ 의 느낌이다.

$\Rightarrow$ 프로그래밍 언어로 짜여진 세계에서, 사실상 자료형 $=$ 자료구조다.

원시자료형을 구현한 예)

  • 원시자료형(정수): …0,1,2,3… 등의 값을 갖고, 덧셈.뺄셈.곱셈.나눗셈 등 연산을 갖는 집합

  • 자료구조(Char): 자료를 이진수로 나타내며, -128~127 사이 정수 값을 갖고, +, -, *, / 같은 연산을 구현한다.

추상자료형을 구현한 예)

‘데이터를 조직하고 담는 틀’ 로서 기능한다.

  • 선형자료구조: 스택, 큐, 덱
  • 비선형자료구조: 그래프, 트리, 힙 등