자료구조
자료구조란?
자료를 저장하는 구조로 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분한 표현한 데이터 구조이다.
특징
- 효율성 : 문제에 알맞은 자료구조를 사용하여 효율적으로 자료를 관리하고 사용가능.
- 추상화 : 핵심적인 개념 또는 기능을 간추려내는 것을 말함.
- 재사용성 : 특정 프로그램에서만 동작하도록 설계하지 않아 다른 프로젝트에서도 사용가능.
자료구조 종류

이미지 출처
[1] 선형구조 (Linear)
- 자료들이 순차적으로 나열
- 하나의 자료 뒤에 하나의 자료가 존재
[2] 비선형 자료구조(NonLinear)
배열
- 여러 개의 동일한 자료형의 데이터를 한번에 만들 때 사용.
- <인덱스, 요소> 쌍의 집합
- 모든 요소가 동일한 자료형
- 인덱스를 이요하여 빠르게 접근 가능
- 삭제 및 삽입의 비용이 많이 소요
큐
- 먼저 넣은 데이터를 가장 먼저 꺼내는 데이터 구조
- FIFO(선입선출) , LILO 방식을 사용
- 가장 앞부분 front, 가장 뒷부분을 rear
- front: 삭제가 발생, rear : 삽입이 발생
스택
- 한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조
- LIFO 방식을 사용 (가장 먼저 저장된 것이 제일 나중에 나옴)
- Top에서만 데이터 삽입과 삭제가 수행
- 데이터를 받는 순서대로 정렬
연결리스트
- 노드라는 객체로 이루어져있음.
- 노드는 데이터를 갖고 있는 데이터 필드와 다음 원소를 가리키는 포인터로 구성
- 리스트의 첫번째 노드를 Head, 마지막 노드를 Tail이라고 한다.
- 데이터 삽입과 삭제 속도의 경우 배열보다 리스트가 우위
덱
- 양쪽에서 삽입과 삭제가 가능한 구조
- rear와 front 어느 곳에서든 삽입과 삭제가 이루어짐.
트리
- 노드로 구성된 계층적 자료구조
- 트리는 하나의 루트 노드를 갖고 있다. ( 최상위 노드를 루트라고 함 )
- 순차적으로 저장하지 않는, 비선형 자료구조
그래프
- 정점과 간선으로 이루어진 자료구조
- 정점 : 노드라고도 하며, 데이터가 저장되는 곳이다.
- 간선 : 링크라고도 하며, 노드간의 관계를 나타낸다.
내용 계속해서 추가하기