Fork me on GitHub

数据结构---栈与队列(2)

二、队列

队列,FIFO表,其插入和删除操作分别在两端进行。插入过程称为入队,删除过程称为出队。

队列的几个基本操作:

(1)Queue()
       构造一个空队列。
(2)Empty()
       判断队空,若空,返回真值,否则返回假值。
(3)Full()
       判断队满,若满,返回真值,否者返回假值。
(4)EnQueue(x)
       入队,若队列不满,则将元素x插入队尾。
(5)DeQueue()
       出队,若队列非空,则删除队首元素,并返回该元素。
(6)GetFront()
       若队列非空,返回队首元素,但不删除队首。

微软提供的队列如下:

 

Code

其中IQueue<T>有如下定义:

Code

 

     写队列就吸取了教训,没有想用.net自带的队列,只是稍微看了下,就自己动手写了队列--myQueue。

Code

 

没有注释,非常惭愧。。。。因为写的时候一气呵成,现在也不想补了,将就着用吧。用队列我找的是素数环的题目,开始没有理解,
以为就是简单的判断下素数组成一个环,后来认真仔细分析题目后,才知道要求是让一组数的相邻两数之和为素数,这正好体现的是
队列的用法,算法就不说了,网上很多介绍。自己动手写了个。

Code

 

还是没有注释,以后忘记的再补上。

栈和队列就复习完了,但是有两个我非常关注的习题却没有时间做,一个是走迷宫,还一个是骑士游历。因为开学了事情非常多,
我想只能利用学习之余继续复习数据结构了。

posted @ 2009-03-01 10:37  idoku  阅读(306)  评论(0编辑  收藏  举报