![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgTIYZ%2FbtqJIL7EEOG%2FMrGZtV1FcV8eAZkKbxUQUk%2Fimg.png)
[자료구조] 더블 링크드 리스트(Doubly Linked List) (C++)
2020. 9. 29. 11:44
자료구조, 알고리즘
개념 링크드 리스트의 탐색 기능을 개선한 자료구조이다. 양방향으로 탐색이 가능하다. 코드 자체는 링크드 리스트와 크게 다른 게 없다. 삽입, 삭제 시 양방향인 것만 신경 쓰면 된다. template struct Node { T data;// 데이터 Node* prevNode;// 이전 노드를 가리키는 포인터 Node* nextNode;// 다음 노드를 가리키는 포인터 Node(T value) : data(value), prevNode(NULL), nextNode(NULL) {} }; template class DoublyLinkedList { Node* head; Node* tail; int size = 0; public: DoublyLinkedList() : head(NULL), tail(NULL) {..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceMS0R%2FbtqI4UifOHq%2Fq0GsymHbYA7A6PfZY6tsx1%2Fimg.png)
[자료구조] 링크드 리스트(Singly Linked List) (C++)
2020. 9. 27. 00:44
자료구조, 알고리즘
개념 각 요소를 노드(Node)라고 부르며, 링크드 리스트는 '노드를 연결해서 만드는 리스트'라고 해서 붙여진 이름이다. 링크드 리스트의 노드는 데이터를 보관하는 필드와 다음 노드 주소를 가리키는 포인터로 이루어져 있다. 데이터가 늘어날 때마다 노드를 만들어서 테일에 붙이면 된다. 리스트 사이에 새로운 노드를 끼워 넣거나 제거하는 것도 간편하다. template struct Node { T data;// 데이터 Node* nextNode;// 다음 노드를 가리키는 포인터 Node(T value) : data(value), nextNode(NULL) {} }; template class LinkedList { Node* head; Node* tail; int size = 0; public: LinkedLi..