算法不会,尚能饭否之队列

本博文讲的是数据结构与算法之队列。总所周知,队列,在实际编程的应用,那就不用我唠叨了。伟大的队列,总能给与我们解决问题的捷径,你是否真的懂得呢?也许你懂得,如果你懂了,也可以动手写一个实现队列的基本功能的小程序。呵呵~废话不多说了,开始数据结构与算法之队列之旅吧!

首先,该要简述一下队列。首先,什么事队列?相对于栈的“先进后出”来说,队列就是“先进先出”了,队列,就犹如排队。噢,不!用词不当,队列,应该说,就是排队。队头的人是先排进队列的,所以就先得到东西,例如你是先排队去买火车票的,那么你就先买到车票了。买到票了,伙计,一路顺风。呵呵,开玩笑了。那么,后到的就只能在队尾排了。至于能不能插队,哦,不是很道德。讨厌,我讨厌插队,因为讨厌插队,所以,今天我就不解决插队的问题,我不想让我的代码那么没有素质吧。你说呢?

队列的实现可以用别的数据结构来实现,如数组或者链表,哦,是的,今天我正是要用链表来实现我的队列。可能就有人来问我了,为什么不用数组来实现呢?我可能就要告诉你了。老兄,你该看看关于算法的书了,因为这个问题的答案,这些算法的书上都有讲解,或者,我会写篇博文来用数组实现队列,顺便讲讲用数组实现队列的优缺点。不错的想法。是吧,伙计。

来吧,伙计,记住了,我是用链表来实现队列。不要忘了。用链表实现,那就是一个一个的节点了,对吧,我说的没有错吧,把节点连起来,再按照队列的规则来“出牌”——就是按照队列的规则来进队列和出队列,同时,我还会实现一些其它的功能。等着瞧好吧,老兄。什么都是代码说问题,是吧!贴出代码,如果觉得不代码不妥,请向我提出,我们是互相学习的。哦,代码来了。

//节点结构

struct Node

{

         int value;

         Node *next;

};

很简单,是吧!一个数据,一个指针,指向下一个节点的指针。不错,看起来很简单,是的,每一个复杂的程序都是由这样简单的代码来拼装起来的,说的有的“过”了。

void EnterQueue(Node *, const int &); //将元素加入队列

         int OutQueue(Node *); //出队列

         int GetHead(Node *); //获取队头元素

         int GetTail(Node *); //获得队尾元素

         void MakeEmpty(Node *); //将队列置空

         int IsEmpty(Node *); //判断队列是否为空

         void ShowQueue(Node *); //输出队列中所有元素

队列要实现的功能,很简单的几个功能。

在这里,功能的实现我就不多说了,我把代码贴出,有很详细的注释,不懂,可以给我留言,或者call我。代码如下,哦,有点长。

 

代码下载:http://download.csdn.net/source/3045948

posted @ 2011-02-27 11:42  Java EE  阅读(136)  评论(0编辑  收藏  举报