数据结构之Queue的实现

Queue支持的方法

方法名 参数 功能 返回
Size void 返回链表规模(该方法由List< T>派生而来)
empty void 返回链表是否为空(该方法由List< T>派生而来)
front void 返回队首数据域的引用
enqueue T const & e 入队 void
dequeue void 出队 出队的对象

code

// Queue.h
# pragma once
# include "List.h"

template <typename T>
class Queue :public List<T>{
public:
	void enqueue(T const & e)
	{
		List<T>::insertAsLast(e);
	}
	T dequeue(void)
	{
		T tmp = List<T>::first()->data;
		List<T>::remove(List<T>::first());
		return tmp;
	}
	T & front(void)
	{
		return List::first()->data;
	}
};

测试code

// main.cpp
# include 
# include "Queue.h"

int main(void)
{
	Queue<int> q;
	for (int i = 1; i < 10; ++i)
		q.enqueue(i);
	std::cout << q.Size() << '\n';
	while (!q.empty())
	{
		std::cout << q.dequeue();
	}
}

输出

9
123456789

theeeeend •ࡇ•

你可能感兴趣的:(THU数据结构,数据结构)