자료구조
-
자료구조...29일지 2020. 11. 4. 20:43
이중 원형 연결 리스트 구현 DoublyLinkedList를 변형하여 이중 원형 연결 리스트를 구현한다. DoublyCircularLinkedList.h #pragma once #include #include struct DoublyCircularLinkedListNode { DoublyCircularLinkedListNode() {} DoublyCircularLinkedListNode(int value) { m_data = value; } int m_data{ 0 }; DoublyCircularLinkedListNode* m_prev{ nullptr }; DoublyCircularLinkedListNode* m_next{ nullptr }; }; class DoublyCircularLinkedList ..
-
자료구조...28일지 2020. 11. 2. 20:52
기능 메서드 구현 자료구조를 효율적으로 사용하기 위한 기능 메서드를 구현한다. SinglyCircularLinkedList.cpp /// /// 지정한 값을 포함한 노드가 존재하는지 확인한다. /// /// 찾을 값 /// 값의 존재 여부 bool SinglyCircularLinkedList::Contains(int value) { if (m_head != nullptr) { SinglyCircularLinkedListNode* curNode{ m_head }; do { if (curNode->m_data == value) { return true; } curNode = curNode->m_next; } while (curNode != m_head); } return false; } /// /// 지정한..
-
자료구조...27일지 2020. 11. 1. 16:26
데이터 삭제 메서드 구현 데이터 삭제 연산에 필요한 메서드들을 구현한다. SinglyCircularLinkedList.cpp /// /// SinglyCircularLinkedList에서 가장 처음 일치한 지정된 값을 포함한 노드를 제거한다. /// /// 제거할 값 bool SinglyCircularLinkedList::Remove(int value) { if (m_head != nullptr) { SinglyCircularLinkedListNode* curNode{ m_head }; do { if (curNode->m_data == value) { Remove(curNode); return true; } curNode = curNode->m_next; } while (curNode != m_head)..
-
자료구조...26일지 2020. 10. 31. 12:25
데이터 삽입 메서드 구현 데이터 삽입 연산에 필요한 메서드들을 구현한다. SinglyCircularLinkedList.cpp /// /// SinglyCircularLinkedList의 시작 위치에 지정한 값이 포함된 새 노드를 추가한다. /// /// 추가할 값 void SinglyCircularLinkedList::Add(int value) { SinglyCircularLinkedListNode* newNode{ PopNode(value) }; Add(newNode); } /// /// SinglyCircularLinkedList의 시작 위치에 지정한 노드를 추가한다. /// /// 추가할 새 노드 void SinglyCircularLinkedList::Add(SinglyCircularLinkedLi..
-
자료구조...25일지 2020. 10. 29. 18:21
단일 원형 연결 리스트 구현 SinglyLinkedList를 변형하여 단일 원형 연결 리스트를 구현한다. SinglyCircularLinkedList.h #pragma once #include #include struct SinglyCircularLinkedListNode { SinglyCircularLinkedListNode() {} SinglyCircularLinkedListNode(int value) { m_data = value; } int m_data{ 0 }; SinglyCircularLinkedListNode* m_next{ nullptr }; }; class SinglyCircularLinkedList { public: #pragma region 생성자 SinglyCircularLinked..
-
연결 자료구조 - 이중 연결 리스트(DoublyLinkedList)프로그래밍 기초/자료구조 2020. 10. 26. 08:19
이중 연결 리스트 이중 연결 리스트는 이전 노드의 주소와 다음 노드의 주소를 모두 관리한다. - 삽입(Insert) 연산 기존 노드의 다음을 삽입 노드가 가리키고 기존 노드의 다음은 삽입 노드를 가리키도록 하고 다음 노드의 이전을 삽입 노드가 가리키고 다음 노드의 이전은 삽입 노드를 가리키도록 한다. * 원본 데이터 리스트 끝에 노드를 삽입하는 경우 리스트의 마지막 노드의 다음이 삽입 노드를 가리키고 삽입 노드의 이전이 마지막 노드를 가리키도록 만들어준다. ※ 리스트 앞에 노드를 삽입하는 경우 삽입 노드의 다음이 처음 노드를 가리키고 처음 노드의 이전이 삽입 노드를 가리키도록 만들어주면 된다. 리스트 중간에 노드를 삽입하는 경우 리스트 앞에 노드를 삽입할 때의 작업과 리스트 뒤에 노드를 삽입할 때의 작업..