일지
자료구조...13
niamdank
2020. 10. 10. 11:32
생성자 구현
기본 생성자와 SinglyLinkedList를 인자로 받는 복사 생성자를 구현한다.
SinglyLinkedList.cpp
/// <summary>
/// 비어있는 SinglyLinkedList를 생성한다.
/// </summary>
SinglyLinkedList::SinglyLinkedList()
: m_count(0), m_head(nullptr)
{
}
/// <summary>
/// 다른 SinglyLinkedList가 가지고 있는 노드를 복사해 SinglyLinkedList를 생성한다.
/// </summary>
/// <param name="other">기준이 될 SinglyLinkedList</param>
SinglyLinkedList::SinglyLinkedList(const SinglyLinkedList& other)
: m_count(other.m_count)
{
SinglyLinkedListNode* prevNode = nullptr;
SinglyLinkedListNode* curNode = other.m_head;
while (curNode != nullptr)
{
SinglyLinkedListNode newNode;
newNode.m_data = curNode->m_data;
newNode.m_next = prevNode;
prevNode = &newNode;
}
m_head = prevNode;
}
/// <summary>
/// 메모리 누수를 막기 위해 동적 생성한 노드들을 제거한다.
/// </summary>
SinglyLinkedList::~SinglyLinkedList()
{
while (m_head != nullptr)
{
SinglyLinkedListNode* curNode = m_head;
m_head = m_head->m_next;
delete curNode;
}
}