⚡데이터와 자료구조의 관계❗
▶️ 데이터(Data)는 현실 세계로부터 단순한 관찰이나 측정을 통해서 수집된 사실(fact)이나 값(value)을 말한다.
- 하지만, 정보(information)는 적절한 의사결정을 할 수 있게 하는 지식으로서 수집된 데이터의 유효한 해석이나 데이터 상호 간의 관계를 일컫는다.
▶️ 데이터(Data)는 단순히 데이터 자체는 무용한 것이고, 데이터에서 정보를 추출하는 방법이 아주 중요하다.
- 이렇게 데이터에서 정보를 추출하는 방법을 좁은 의미로는 자료처리(Data Processing), 넓은 의미로는 정보처리(Information Processing)라고 한다.
🎞️자료구조란?
- 만약 책장의 책을 각각 메모리와 데이터로 본다면, 책장에 책들을 오름차순으로 정리할 수 있다. 하지만 분야별로 찾고 싶은 사람들이 많을 때에는 오름차순으로 정리한 것이 도움되지 않는 방법이다. 따라서 분야별(IT, 문화, 경제 등)로 나누는 것이 효율적이다. 또한 책장의 층을 각 분야별로 나누어 정리한다면 어떤 분야는 데이터 양이 많아서 넘칠 수도 있고 어떤 분야는 정리할 양이 적어 공간이 남을 수 있다. 그러므로 가림막을 설치하여 넘쳐나는 데이터를 아래에 배치하고 다른 분야와 분리하여 정리한다면 더 효과적으로 자료를 구분할 수 있다.
▶️ 자료구조는 여러 데이터들의 묶음, 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것이다.
▶️ 모든 목적에 맞는 자료구조는 없으며, 각 자료구조의 한계와 단점을 아는 것이 중요하다.
▶️ 자료구조는 메모리 공간의 효율성 뿐만 아니라 실행 시간의 효율성도 중요하다.
🔧자료구조와 알고리즘 관계
- 내가 '클린코드'라는 책을 찾아야 하는데 왼쪽 부터 찾을 것인지, 오른쪽부터 찾을 것인지, 무작위로 찾을 것인지를 결정하는 것이 알고리즘이다.
- 만약 책이 이름순으로 정렬되어 있다면 '클린코드'라는 책은 역순에서 찾는 것이 빠르다. 만약 자료가 분야별로 정리되어있다면 IT라는 분야에서 찾는 것이 빠르다.
▶️ 알고리즘은 문제풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다.
▶️ 자료구조 선택이 효율적인 알고리즘 선택을 하게 한다.
✔️필수자료구조
<선형 구조>
- 배열
메모리 상에 같은 타입의 자료가 연속적으로 저장된다.
- 연결 리스트
노드를 단위로 한다. 노드는 자료와 다음 노드를 가리키는 참조값으로 구성되어 있다.
- 배열과 연결리스트 이미지
- 덱
양쪽에서 넣기와 빼기를 할 수 있는 일반화된 선형 구조이다.
- 덱 이미지
- 스택
스택 자료구조에 먼저 저장된 것이 꺼내어 쓸 때는 제일 나중에 나온다. 반대로, 가장 최근에 저장된 것이 꺼내어 쓸 때는 제일 먼저 나온다.
- 큐
스택과 반대로 큐 자료구조에 먼저 저장된 것이 제일 먼저 나온다. 반대로, 가장 나중에 저장된 것이 꺼내어 쓸 때는 가장 나중에 나온다.
환형 큐 : 한정된 길이 안에서 부수적인 작업 없이 읽고 쓰기를 할 수 있는 큐이다.
- 스택과 큐의 이미지
<비선형 구조>
- 그래프
꼭짓점과 꼭짓점을 잇는 변으로 구성된다.
- 트리
뿌리와, 뿌리 또는 다른 꼭짓점을 단 하나의 부모로 갖는 꼭짓점들로 이루어진 구조. 부모 자식 관계는 변으로 표현된다.
참고자료
1) https://bnzn2426.tistory.com/115
2) https://hanamon.kr/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EB%9E%80-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%EB%A5%BC-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0/