본문 바로가기
자료구조 [Data Structure]

자료구조(Data Structure) 란?

by GGolDDuKi 2022. 3. 23.

프로그래머스의 코딩테스트 문제들을 풀이하고, 해석하기 위해서는
자료구조에 대한 이해가 기본이 되어야 한다고 판단하여 쉽게 찾아볼 수 있도록 본인 블로그에 정리하게 됨.
각각의 자료구조에 대한 자세한 내용은 나눠서 자세하게 공부할 예정

 

자료구조란?

저장된 데이터에 대한 작업을 보다 효율적으로 수행할 수 있는 방식으로, 컴퓨터에 데이터를 구성하고 저장하는 특수한 수단.
자료구조는 컴퓨터 과학 및 소프트웨어 엔지니어링 분야에서 광범위하고 다양한 사용 범위를 가지고 있음.

1. 배열(Arrays)

배열은 동일한 데이터 형식의 항목을 보유할 수 있는 고정 크기의 구조.
정수배열, 부동점 번호 배열, 문자열 배열 또는 배열의 배열(ex. 2차원 배열)일 수 있음.
배열은 인덱싱 되므로 임의의 액세스가 가능.

2. 연결 리스트(Linked Lists)

메모리에 있는 데이터의 물리적 배치를 사용하지 않는 데이터 구조.
인덱스나 위치보다는 참조 시스템을 사용함.
연결된 각 요소는 노드라는 것에 저장되는데, 다음 노드 연결에 대한 주소나 포인터가 포함된 다른 노드에 저장된다.

연결 방식으로는 단일 연결 리스트(Singly Linked List), 이중 연결 리스트(Doubly Linked List), 원형 연결 리스트(Circular Linked List) 등이 있다.

3. 스택(Stacks)

많은 프로그래밍 언어에서 일반적으로 찾아볼 수 있는 LIFO(Last In First Out)구조.

4. 큐(Queues)

큐 또한 많은 프로그래밍 언어에서 일반적으로 찾아볼 수 있는 FIFO(First In First Out)구조.

5. 해시 테이블(Hash Tables / Hash Map)

대량의 정보를 저장하고 특정 요소를 효율적으로 검색할 수 있는 복잡한 데이터 구조.
테이블 내에 더 작은 버킷이라는 그룹에 키,값 쌍을 저장하는데,
키,값 쌍이 많을 경우 비실용적이고 불가능하게 될 수 있음.
이를 해결하기 위해 해시 함수(Hash Function)라는 함수를 통해 해시(Hash)라는 특정 숫자값으로 변환시킴.

6. 트리(Trees)

트리는 계층적으로 구성된 자료구조이며, 노드로 구성되어 있다.
최상위 노드(루트)를 만들고, 루트의 Child노드를 추가하고, Child의 Child노드를 추가하는 식의 방식으로
구현할 수 있음.

7. 힙(Heaps)

상위 노드가 값을 가진 자식 노드와 비교되고, 그에 따라 배열되는 이진트리의 특수한 경우.

8. 그래프(Graph)

그래프는 노드의 집합과 이것을 연결하는 엣지(edge)의 집합으로 구성 됨.

반응형

댓글