요깨비's LAB

[Data Structrue] 자료구조란? 본문

컴퓨터 공학기초/자료구조

[Data Structrue] 자료구조란?

요깨비 2019. 11. 26. 01:59

1. 자료구조란?
자료구조(資料構造, 영어: data structure)는 전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다.
위키백과-자료구조 

* 컴퓨터의 메모리는 1차원 구조이기 때문에 현실 세계의 다차원 데이터를 다루기 위해서는 이것을 1차원인
선 형태로 바꾸는 것이 필요하다. 2차원 배열, 이진 트리, 그래프 등의 자료구조가 2차원 데이터를 1차원으로
바꾸는 구조이다. 이에 숙련되면 3차원 이상의 다차원 데이터를 처리하는 자료구조를 학습할 수 있게 된다.

2. 추상적 자료형(ADT)과의 관계
ADT: 알고리즘이 문제를 해결하는데 필요한 자료의 형태와 자료를 사용한 연산들을 수학적으로 정의한 모델
자료구조: ADT가 정의한 연산들을 구현한 구현체
스택의 예로, LIFO의 성질을 가진 ADT가 필요하니 pop과 push를 가지도록 스택이라는 ADT를 정의하고, 
그것을 구현해서 함수 호출을 관리하는데 사용하는 구현체, 즉 자료구조를 콜 스택이라고 부른다.

3. 자료구조의 분류

  • 선형 구조는 자료를 구성하는 데이터를 순차적으로 나열시킨 구조이다.

ex. 연결 리스트

  •  비선형 구조는 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 구조이다.

ex. 트리 구조

 

추가적으로 제가 머리에 박아넣기 위해 메모 해두는 글입니다. 
2차원 배열 int arr[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}}; 은 사실 int arr[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11}; 과 동일하다.
column은 열의 개수를 의미하며, 즉, arr[2][2]는 (*arr)[2*4+2]인 (*arr)[10] 과 같다.

Comments