리스트는 여러 개의 요소들을 나타내는 방식입니다. 자료구조론에서 이러한 리스트를 표현하는 밥법은 크게 두 가지로, 배열(Array)과 연결 리스트(Linked List)가 있습니다. 이번 글에서는 배열과 그 특성에 대해서 다루어보겠습니다. 배열 int arr[3] = {1, 2, 3}; 배열은 같은 데이터 타입을 가지는 요소들의 sequence(시퀀스)입니다. 배열 속에서 각 요소들은 index(인덱스)로 접근가능합니다. N의 크기를 가지는 배열에서 첫 번째 요소의 인덱스는 0, 두 번째 요소의 인덱스는 1, 이런 식으로 증가하여 N번째(마지막) 요소의 인덱스는 N-1이 됩니다. 특징과 장점 같은 데이터 타입을 가지기 때문에 배열의 각 요소는 같은 크기를 가지게 됩니다. 같은 크기를 가진다는 점 덕분에 ..
지난 학기에는 학교에서 자료구조를 수강했었다. 흔히 컴퓨터공학 6대 과목을 자료구조, 알고리즘, 컴퓨터 구조론, OS, 컴퓨터 네트워크, 데이터베이스 이렇게 6가지를 말하곤 한다. 그중 처음 듣는 과목인 자료구조였던 만큼 제대로 된 전공공부를 해보게 된다 라는 느낌으로 수강하였다. 사실 자료구조의 대부분은 따로 커리큘럼을 따라 배운것은 아니지만, 그때그때 배웠던 지식으로 알고 있었기에 대부분 수업을 복습하는 느낌으로 듣게 되었다. 그러나 원래 잘 확실히 이해하지 못했던 Priority Queue와 Heap의 관계를 ADT와 Implemantation의 관계라는 것을 이해할 수 있었고, AVL Tree를 직접 구현해보기도 하고, 여러 자료구조들을 수학적으로 따져보기도 하는 과정도 새로웠다. 또한 그래프 구..