일지

자료구조...52

niamdank 2020. 12. 16. 10:58

연결 리스트 큐 삽입 메서드 구현

 

LinkedListQueue.cpp

/// <summary>
/// LinkedListQueue의 끝 부분에 값을 추가한다.
/// </summary>
/// <param name="value">추가할 값</param>
void LinkedListQueue::Enqueue(int value)
{
	m_items.Add(value);
}

 

연결 리스트 큐 인출 메서드 구현

 

LinkedListQueue.cpp

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

	return m_items.Item(0);
}

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

	int data{ m_items.Item(0) };
	m_items.RemoveAt(0);

	return data;
}

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

 

연결 리스트 큐 기능 메서드 구현

 

LinkedListQueue.cpp

/// <summary>
/// LinkedListQueue에 지정한 값이 존재하는지 확인한다.
/// </summary>
/// <param name="value">LinkedListQueue에서 찾을 값</param>
/// <returns>값의 존재 여부</returns>
bool LinkedListQueue::Contains(int value)
{
	return m_items.Contains(value);
}