算法不会,尚能饭否之队列
来源:互联网 发布:陕西善友汇网络干嘛的 编辑:程序博客网 时间:2024/04/28 14:09
本博文讲的是数据结构与算法之队列。总所周知,队列,在实际编程的应用,那就不用我唠叨了。伟大的队列,总能给与我们解决问题的捷径,你是否真的懂得呢?也许你懂得,如果你懂了,也可以动手写一个实现队列的基本功能的小程序。呵呵~废话不多说了,开始数据结构与算法之队列之旅吧!
首先,该要简述一下队列。首先,什么事队列?相对于栈的“先进后出”来说,队列就是“先进先出”了,队列,就犹如排队。噢,不!用词不当,队列,应该说,就是排队。队头的人是先排进队列的,所以就先得到东西,例如你是先排队去买火车票的,那么你就先买到车票了。买到票了,伙计,一路顺风。呵呵,开玩笑了。那么,后到的就只能在队尾排了。至于能不能插队,哦,不是很道德。讨厌,我讨厌插队,因为讨厌插队,所以,今天我就不解决插队的问题,我不想让我的代码那么没有素质吧。你说呢?
队列的实现可以用别的数据结构来实现,如数组或者链表,哦,是的,今天我正是要用链表来实现我的队列。可能就有人来问我了,为什么不用数组来实现呢?我可能就要告诉你了。老兄,你该看看关于算法的书了,因为这个问题的答案,这些算法的书上都有讲解,或者,我会写篇博文来用数组实现队列,顺便讲讲用数组实现队列的优缺点。不错的想法。是吧,伙计。
来吧,伙计,记住了,我是用链表来实现队列。不要忘了。用链表实现,那就是一个一个的节点了,对吧,我说的没有错吧,把节点连起来,再按照队列的规则来“出牌”——就是按照队列的规则来进队列和出队列,同时,我还会实现一些其它的功能。等着瞧好吧,老兄。什么都是代码说问题,是吧!贴出代码,如果觉得不代码不妥,请向我提出,我们是互相学习的。哦,代码来了。
//节点结构
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
- 算法不会,尚能饭否之队列
- 算法不会,尚能饭否之树(2)
- 算法不会,尚能饭否之顺序表
- 算法不会,尚能饭否之栈
- 算法不会,尚能饭否之集合(Set)
- 算法不会,尚能饭否之折半查找(Binary search)
- 算法不会,尚能饭否之树(1)
- 算法不会,尚能饭否之双向循环链表
- 算法不会,尚能饭否之排序——插入排序法(用链表实现)
- 算法不会,尚能饭否之排序——冒泡排序(bubble sort)
- 算法不会,尚能饭否之排序——折半插入排序(Binary Insert Sort)
- 算法不会,尚能饭否之排序——直接插入排序(Insert sort)
- 算法不会,尚能饭否之排序——直接选择排序
- 算法不会,尚能饭否之对分查找二叉树(又为快速排序之二叉树实现)
- 算法之优先级队列
- 啊哈算法 之 队列
- 算法之优先队列
- 算法基础之队列
- 开源框架 项目
- lesson1 计算机常识(01.16)
- lesson2 DOS (02.19)
- lesson3 NetWork (02.19)
- Joomla模块学习之后台mod_status模块
- 算法不会,尚能饭否之队列
- 在一个程序中控制另一个程序的函数调用
- 2011年初,BlackBerry开发工具签名密钥免费申请了!
- 奇妙的人体
- android:cha1.2 通过Intent实现Activity之间的通信
- Java学前课时
- 多级CPU Cache的利用率
- 杭电 1020 Encoding
- Delphi开源项目 - Synopse 【sqlite、pdf、加密】等