간단 자료구조

간단한 queue 구현

TIN9 2022. 11. 3.
반응형
template <typename T>
class MyQueue
{
public:
	MyQueue() :
        Dat{},
		Head(0),
		Tail(0)
	{

	}
private:
	T Dat[10000];
	int Head;
	int Tail;

public:
	void push(int x)
	{
		Dat[Tail++] = x;
	}

	void pop()
	{
		Head++;
	}

	int front()
	{
		return Dat[Head];
	}

	int back()
	{
		return Dat[Tail - 1];
	}

	int size()
	{
		return Tail - Head;
	}

	bool empty()
	{
		if (Tail - Head == 0)
		{
			return true;
		}

		return false;
	}
};
void test() 
{
	MyQueue<int> Q;

	Q.push(10); 
	Q.push(20);
	Q.push(30);
	cout << Q.front() << '\n'; // 10
	cout << Q.back() << '\n'; // 30
	Q.pop(); 
	Q.push(15); 
	Q.push(25);
	cout << Q.front() << '\n'; // 20
	cout << Q.back() << '\n'; // 25
	cout << Q.size() << '\n'; // 4
	cout << Q.empty() << '\n'; // 0
}

 

코딩테스트 or 단순한 용도에 사용할 예제일 뿐 완벽한 queue가 아닙니다.

해당 queue는 데이터를 지우는 방식이 아닌 Head의 인덱스를 증가시켜주는 방식으로

인덱스범위에 신경써서 사용해야합니다.

반응형

댓글