ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자료구조...13
    일지 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;
    	}
    }

    댓글

Designed by Tistory.