Home Data Structure 0.Introduction

[자료구조] 0.Introduction

Post Date

Modified Date

Category

안녕하세요, 오랜만에 새로운 카테고리를 하나 시작할까 합니다. 그 동안 훈련소의 공백 때문에 밀려있는 일과, 학과에서 새로 진행중인 사업 제안서를 작성하느라 블로그에 공부 관련 글을 작성할 시간이 없었습니다. 작년에 블로그를 만들었을 때는 이맘때쯤 공부 관련 카테고리에 글이 한가득 있을 것이라 생각했는데, 계획대로 잘 되지 않았네요. 앞으로는 틈틈히 최대한 짬을 내서 원래의 목적대로 공부 관련 글을 채워볼까 합니다.

이 카테고리에서는 컴퓨터공학과 학부 과목 중 하나인 자료구조 과목을 정리할 생각입니다. 자료구조는 보통 2학년 과정에서 배우게 되는데, 대부분의 학교에서 필수과목으로 지정해둘 만큼 중요성이 높은 과목입니다. 특히 고학년 과목들은 자료구조를 모른다면 아예 손을 댈 수도 없을 정도이기 때문에, 확실히 배워두고 넘어가야 합니다.

저는 학부 때 자료구조 과목만큼은 굉장히 열심히 들었기 때문에 큰 어려움 없이 A+ 학점을 받고 이수를 했는데, 조교를 해보니 의외로 학부생들은 이 과목을 어려워하는 것 같습니다. 특히 연결 리스트(Linked List) 부분부터는 아예 손을 놓는 학생들을 많이 봤습니다. 과목 자체가 어려운 것은 아니지만, 배운 내용을 직접 프로그래밍하면서 이해하지 않고 강의자료만 읽으며 넘어가는 학생들이 버거워하는 것으로 보입니다.

프로그래밍 관련 과목이 다 그렇지만, 이 과목도 이론적인 것을 공부한 다음에는 반드시 하나하나 프로그램을 구현해보아야 합니다. 특히 포인터가 들어가는 연결 리스트 이후부터는 프로그램이 복잡해지기 때문에 직접 손으로 프로그램의 구조를 그려보고, 어떤 방법으로 프로그램이 돌아가는지를 하나하나 따라가봐야만 제대로 자기 것으로 만들 수 있습니다.

자료구조를 배울 때 사용하는 교재는 학교마다 다르겠지만, 대부분의 학교에서는 Horowitz의 Fundamentals of Data Structure in C 라는 교재를 사용하는 것으로 알고 있습니다. 워낙 유명한 책이다보니 한글 번역본도 나와있습니다. 많은 분들이 번역본을 읽는 것보다는 원서를 읽는 것을 추천하지만, 개인적인 생각으로는 영어에 자신이 없다면 번역본을 읽는 것도 나쁘지 않다고 생각합니다. 아무래도 영어로 보다보면 한글에 비해 읽는 시간이 너무나 오래 걸리기 때문입니다.

이 책에서는 제목대로 학습 내용을 C언어로 구현한 코드를 제공해줍니다. 프로그램 전체를 보여주는 경우는 별로 없고, 대부분은 특정 함수만 코드로 알려줍니다. 저는 이 책을 정리하는 입장이다보니, 가급적이면 책에 나와있는 프로그램을 직접 구현해서 포스트에 첨부하고자 합니다.

그럼 다음 포스트부터 본격적으로 자료구조의 각 단원을 정리해서 올리도록 하겠습니다.

댓글 남기기

Please enter your comment!
Please enter your name here

Duvelix

학부에서는 수학을, 대학원에서는 컴퓨터공학을 전공했습니다. 현재는 컴퓨터공학과 박사과정을 수료하고 보이지 않는 졸업과 싸우는 중입니다.

Popular posts

[Life Hack] OBS Studio로 녹화하기

게임을 할 때나, 컴퓨터로 복잡한 작업을 할 때는 기록을 위해 녹화를 하고 싶은 경우가 있습니다. 컴퓨터 화면을 녹화할 수 있는 프로그램은 Fraps, 반디캠, 오캠...

[Tip] New 닌텐도 3DS XL vs New 닌텐도 2DS XL

안녕하세요, 오늘 포스트는 New 닌텐도 3DS XL과 New 닌텐도 2DS XL의 차이점을 소개하려고 합니다. 저는 New 닌텐도 2DS XL로 시작을 했고 최근에 New 닌텐도 3DS...

[워드프레스] 뉴스페이퍼 테마 구매 및 적용하기

지난 시간에 워드프레스를 설치했습니다만, PHP 프로그래밍에 능숙한 분이 아니라면 워드프레스 테마를 직접 만들어서 운영하기 쉽지 않습니다. 그렇기 때문에 대부분의 사용자들은 전문가들이 제작한 워드프레스 테마를...

[기계학습] 7. VC Dimension

일곱 번째 챕터에서는 지난 챕터 마지막에 나온 Vapnic-Chervonenkis (VC) Dimension에 대해 배우게 됩니다. 이번 챕터는 4개의 소주제로 나뉘어 있습니다. 먼저 VC Dimension의 정의를 배우고, Perceptron에서의...

[Life Hack] 구글 애드센스 시작하기

구글 애드센스는 구글에서 컨텐츠 제공자들이 수익을 얻을 수 있게 만드는 광고 게제 서비스입니다. 구글 계정을 통해 가입하여, 제공 받은 광고 태그를 블로그나 유튜브에 삽입하면...

Recent comments