일지

자료구조...56

niamdank 2021. 1. 5. 13:33

원형 큐 삭제 메서드 구현

 

CircularQueue.cpp

/// <summary>
/// CircularQueue의 시작 부분을 제거하지 않고 반환한다.
/// </summary>
/// <returns>시작 부분에 있는 값</returns>
int CircularQueue::Peek()
{
	if (m_count <= 0)
	{
		throw std::out_of_range("empty");
	}

	return m_items[m_rear];
}

/// <summary>
/// CircularQueue의 시작 부분의 값을 제거한 뒤 반환한다.
/// </summary>
/// <returns>시작 부분에 있던 값</returns>
int CircularQueue::Dequeue()
{
	if (m_count <= 0)
	{
		throw std::out_of_range("empty");
	}

	int data{ m_items[m_rear++] };
	m_rear = m_rear % (m_capacity + 1);
	m_count--;

	return data;
}

/// <summary>
/// CircularQueue의 모든 값을 제거한다.
/// </summary>
void CircularQueue::Clear()
{
	m_front = m_rear = m_count = 0;
}