때는 2002년 3월, 대학교 2학년 때 이다. 컴퓨터 공학 전공으로 전공필수 과목으로 처음 Data Structure를 접했다.
당시 1학년 2학기 때, C 언어를 막 배운 상태였고, 2학년 올라오자마자 자료구조를 배우는데 java언어를 통해 배웠다.
당시에는 java 1.2 였던걸로 기억하는데, 정확하지는 않다.
아무튼 아무것도 모르는 학부 2학년인데, 갑자기 Stack이니, Queue 이니, Linked List 이니 알수 없는 단어를 쏟아내는 과목이 매우 버거웠다. (2학년때는 공부를 열심히 하지도 않았다!!!)
당시에는 이 과목의 필요성이나, 여기서 작성하는 프로그램들이 무엇을 하는것인지 이해할수가 없었고, 숙제로 구현해 오라고 하는데, 대체 무엇을 구현하는 지 조차 알수가 없었다.
당연히 성적은 잘 나오지 않았고, 나에겐 뭔가 숙제 같은 과목이 되었다.
나중에 군대다녀오고 복학후에 다시 재수강을 하긴 하였지만, 사실 재수강때 기억은 나질 않는다.
지금 다시 그때 과목을 배운다면 참 재밌게 배웠겠다는 생각이 들고, 또 개발자로 10년을 지냈지만 여전히 사용한다는 점에서 매우 중요했던 과목이라고 생각을 하게 되었다.
당시에 공부 하던 책을 꺼내보았다.
https://www.amazon.ca/Data-Structures-Algorithms-Michael-Goodrich/dp/0471383678
짠! 이책이다.. 무려 하드커버...
지금부터 여기에 나와있는 자료구조들을 하나하나 구현해보고자 한다.
Data Structure | Implement | Description |
Stack | https://ijeee.tistory.com/30 | https://github.com/jeng832/DataStructure/tree/master/Stack |
Queue |
https://ijeee.tistory.com/31 | https://github.com/jeng832/DataStructure/tree/master/Queue |
Linked List |
||
Double-Ended Queue |
||
Vector |
||
List |
||
Sequnce |
||
Iterator |
||
Tree |
||
Binary Tree |
||
Priority Queue
|
||
Heap |
||
Dictionary |
||
Hash |
||
Ordered Dictionary |
||
Binary Search Tree |
||
AVL Tree |
||
Multi-Way Search Tree |
||
(2,4) Tree |
||
Red-Black Tree |
||
Graph |
||
Directed Graph |
||
Weighted Graph |
많기도 하다...-_- 다할수 있을까?;;;;;
'Development > Data Structure' 카테고리의 다른 글
Queue (0) | 2020.08.23 |
---|---|
Stack (0) | 2020.06.20 |