일지

자료구조...42

niamdank 2020. 11. 30. 13:10

연결 리스트 스택 삭제 메서드 구현

 

LinkedListStack.cpp

/// <summary>
/// LinkedListStack의 최상위 값을 제거하지 않고 반환한다.
/// </summary>
/// <returns>최상위에 있는 값</returns>
int LinkedListStack::Peek()
{
	if (m_items.Count() <= 0)
	{
		throw std::out_of_range("empty");
	}
	
	return m_items.Front().m_data;
}

/// <summary>
/// LinkedListStack의 최상위 값을 제거한 뒤 반환한다.
/// </summary>
/// <returns>최상위에 있던 값</returns>
int LinkedListStack::Pop()
{
	if (m_items.Count() <= 0)
	{
		throw std::out_of_range("empty");
	}

	SinglyLinkedListNode& topNode{ m_items.Front() };
	int data{ topNode.m_data };

	m_items.Remove(&topNode);

	return data;
}

/// <summary>
/// LinkedListStack의 모든 값을 제거한다.
/// </summary>
void LinkedListStack::Clear()
{
	m_items.Clear();
}