이 글을 읽는 분들은 자료구조에 대해 궁금하거나 이제 막 시작한 분들이라 생각합니다.
자료구조란 저희가 평소에 프로그래밍하면서 맨날 쓰는 배열과 같은 구조들이 자료구조인데요. 자료구조(Data Structure)란 컴퓨터 과학에서 데이터를 구성하고 조직화하는 방법을 의미합니다. 데이터를 효율적으로 저장, 검색, 조작하기 위한 방법과 연산을 포함합니다. 즉, 자료구조는 데이터의 특성과 목적에 따라 적합한 형태로 데이터를 구성하는 방법입니다.
그럼 "배열을 계속 쓰면 되는거 아닌가?" 라고 생각할 수 있습니다. 우선 저 질문에 대한 답을 쓰자면 맞습니다 그냥 배열을 꾸준히 쓸 수 있지만 한정된 자원과 더 효율적이고 빠른 프로그램을 위해 자료구조를 사용해야 합니다.
만약 size가 10인 배열에서 첫번째 index 값을 삭제하면 어떻게 될까요? 0 index를 삭제하면 그 이후 9개의 데이터를 전부 한칸식 이동을 해야합니다. 만약 size가 엄청 큰 수라면 값 하나 삭제하는데 엄청난 시간과 컴퓨터 자원 그리고 사용자의 불만이 늘어날 것입니다.
연결리스트 자료구조의 삭제 예
위 자료구조는 연결리스트라는 자료구조를 이용한 예입니다 위 자료구조를 사용하면 첫번째 인덱스의 값을 삭제하는데 다른 원소들의 값의 이동이 필요없으므로 효율적입니다.
하지만 어떤 자료구조가 제일 좋다라는 자료구조는 없습니다. 위와 같은 예시처럼 특정 상황에서 어떤 자료구조가 비효율적인 구조를 가지고 있는 경우가 있고 어느 상황에서는 효율적일 수 있으나 어떤 상황에는 효율적일 수 있습니다.
다양한 자료구조를 공부하여 적합한 상황에 쓸 자료구조를 익혀야 합니다. 그래서 우리는 자료구조를 공부해야합니다.