IT/컴퓨터 기초지식

자료구조(Data structure) - 프로그래밍 언어

DS지니 2021. 3. 20. 20:16
728x90
반응형

100명의 학생의 성적을 처리한다고 할 때 각각의 성적 값을 변수에 할당하면 100개의 변수가 필요하다.

그러나 배열을 이용하면 1개의 변수명으로 100개의 데이터를 처리할 수 있다.

 

자료구조는 컴퓨터 프로그램에서 데이터를 처리하기 위해 만든 구조로 Array, List, Map이 대표적다.

그 외 프로그램 언어에 따라 Tuple, Dictionary 등을 사용하기도 한다.

 

1. Array 배열

- 가장 대표적인 Data Structre.

- 데이터를 순차적으로 저장. 

- 0부터 시작하는 인덱스로 접근 가능.

- 일반적으로 선언할 때 크기가 고정됨

- 순차적으로만 접근가능해서 위치를 모를 경우 효율이 떨어짐.

- 배열의 데이터는 모두 동일한 자료형 이어야 함.

- 배열 중간에 값을 추가하려면 기존 데이터를 모두 이동시켜야함.

 

 

2. List 리스트

- 순차적인 자료구조 제공

- 객체지향 프로그램언어에는 보통 List 자료구조가 기본적으로 제공되며 그렇지 않는 경우 직접 자료구조를 구현하거나 구현된 라이브러리를 사용해야함.

- 배열과 마찬가지로 인덱스를 사용하지만, 배열의 모든 문제점을 해결하고있음.

- 데이터 크기가 고정되지 않음

- 특정 데이터를 찾기위한 여러 방법이 제공됨

- 서로 다른 타입의 데이터 사용가능. 하지만 일관된 처리가 어려워 보통은 통일함.

- 중간에 값을 추가하거나 삭제하기 쉬움.

 

* Linked List - 현재 데이터에 다음 혹은 이전 데이터를 읽을 수 있는 정보를 추가한 것으로 객체지향 프로그램언어에서는 보통 Iterator 객체가 있어 이를 사용하면 이전, 다음 데이터를 쉽게 읽어 올 수 있음.

 

 

3. Map 맵

- 데이터를 Key:Value(키:값)의 쌍으로 저장하는 방식

- 실제 데이터가 저장되는 형태는 자료구조의 내부구조에 따르며 사용하는 쪽에서는 내부구조에 대해 신경쓸 필요가 없는 형태

- Key 값을 알면 언제든 쉽게 데이터를 찾을 수 있음.

- 객체지향 프로그램언어의 경우 Value에 객체형이 들어갈 수 있어 복잡한 데이터 처리가 가능.

 

 

4. Tuple 튜플

- List와 비슷하지만 한번 생성되면 값을 변경할 수 없는(Immutable) 자료구조이다.

- 리스트와 같이 순차적으로 데이터 처리

- 경우이 따라 튜플에 들어가는 데이터에 이름을 붙여 사용가능

- 튜플의 데이터는 변경할 수 없음.

 

 

5. Dictionary 딕셔너리

프로그래밍 언어에 따라 Map 대신 사용되기도 한다.

Map : 자바, C++

Dictionary : 파이썬, C#, Swift 등

 

* Associative array도 비슷한 개념으로 JavaScript, PHP 등에서 사용되고 있다.

728x90
반응형