반응형 LinkedList5 C++ LinkedList 만들기 (version 3 - Iterator 구현 및 사용) 이전에 만든 LinkedList에 Iterator를 추가하여 traverse하는 용도로 써보겠다. 먼저, C++의 STL에 대해 짚고 넘어가겠다. STL이란 표준 템플릿 라이브러리라고 하며, ISO C++위원회에서 specification을 정한다. ISO에서 특정 클래스의 명세를 결정해 발표하면 C++ 컴파일러를 만드는 vendor들이 알아서 template들을 구현한다. 이것은 알고리즘, 컨테이너, 함수자, 반복자의 네가지 구성 요소를 제공한다. 프로그래머가 자료구조와 알고리즘의 정확한 내부 구조를 모르더라도 사용할 수 있게 구현해놓았다. 간단한 STL 사용 예제를 보겠다. #include using namespace std; #include #include #include template ostre.. 2023. 3. 27. C# LinkedList 만들기 (Generic type) C#으로 LinkedList 만들기 리스트의 type을 Generic화 시킨 LinkedList를 만들어 보도록 하겠다. 이전 글에서 C++로 LinkedList를 template화 하여 어느 타입의 데이터든 관리할 수 있도록 만들었는데 아래는 참고 링크이다. https://suldenlion.tistory.com/90 C++의 템플릿과 C#의 제네릭은 내용상 결이 같다. 다만 C++와 C#, Java의 템플릿/제네릭은 약간의 차이가 있는데 조금 정리해 보겠다. 완전하게 이해하지 못한 부분도 있고 웹 서칭을 참고하여 정리해 보는 것이므로 내용에 오류가 있을 수 있다. C++은 한번 컴파일이 되면 그 뒤로는 동일한 기계어 코드만 실행하게 된다 (컴파일 총 1번). 하지만 C# 같은 경우는 먼저 컴파일을 한.. 2023. 3. 26. C++ LinkedList 만들기 (version 2 - LinkedList Template화 하기) C++의 template 제도와 사용에 대해서 알아보고 또 이전 버전의 LinkedList에 직접 적용시켜 구현해보도록 하겠다. C++의 template은 Java의 Generic과 같은 것으로 이해하면 된다. 우리가 어떤 Collection 객체를 갖다 쓰던지 실제 사용에 있어서 한 가지 변수 타입에 국한되지 않게 쓸 수 있어야 한다. 이전 버전의 LinkedList는 자료형의 리턴 타입이 전부 int형이었다. 하지만 Library에서 갖다쓰는 자료 구조들은 int 뿐만이 아닌 String, bool ... 혹은 객체가 됐든 어떠한 데이터도 담을 수 있다. 그래서 저번 버전의 LinkedList를 template화 시켜 다양한 자료형을 다룰 수 있게 해보겠다. int만 담을 수 있는 이전 버전의 Lin.. 2023. 3. 25. C++ LinkedList 만들기 (version 1) C에 이어 C++로 LinkedList를 구현해 보도록 하겠다. LinkedList의 거의 모든 메서드의 동작 메커니즘은 아래 글에서 소개가 되어있다. https://suldenlion.tistory.com/88 약간의 추가된 요소나 메서드들, 그리고 C++로 파일을 나눠서 작성한 코드 방식 등을 포스팅 해보겠다. 바로 메인 함수 코드를 보면서 어떤 함수들을 사용했는지 보겠다. #include using namespace std; #include "LinkedList.h" void main() { LinkedList list1; LinkedList *list2 = new LinkedList(); list1.addFirst(10); list1.addFirst(20); list1.add(50); list1... 2023. 3. 24. C LinkedList 만들기 (version 1) C로 LinkedList를 직접 구현해 보도록 하겠다. LinkedList는 배열 자료구조의 size 고정 문제를 해결하고, 데이터 삽입/삭제의 문제도 해결되었다는 특징이 있다. LinkedList의 대표 메서드로는 add()와 remove(), 또 특정 인덱스에 값을 갖다넣는 addAt()과 removeAt() 등이 될 것이다. Oracle의 API에서 LinkedList가 있는 부분을 참고하여 주요 메서드들을 구현해 볼 것이다. 만들어 볼 LinkedList는 Singly LinkedList로서 Data와 다음 노드를 가리킬 포인터 노드로 이루어진 Node 구조체와 맨 첫번째 Node를 가리키는 header와 총 노드수를 나타낼 count로 이루어진 LinkedList 구조체로 구성된다. 전체적인 주.. 2023. 3. 23. 이전 1 다음 반응형