开始学习队列这个数据结构
2012-08-05 00:00
519 查看
关于堆栈,大概就讲到这里,下面继续我们的学习。下一个学习的对象是:队列。
你在用电脑时有没有经历过这样的事?机器有时会处于疑似死机的状态,鼠标点什么似乎都没用,双击任何快捷方式都不动弹。就当你失去耐心,打算reset时。突然它像酒醒了一样,把你刚才点击的所有操作全部都按顺序执行了一遍。这其实是因为操作系统中的多个程序因需要通过一个通道输出,而按先后次序排队等待造成的。
再比如像移动、联通、电信等客服电话,客服人员与客户相比总是少数,在所有的客服人员都占线的情况下,客户会被要求等待,直到有某个客服人员空下来,才能让最先等待的客户接通电话。这里也是将所有当前拨打客服电话的客户进行了排队处理。
操作系统和客服系统中,都是应用了一种数据结构来实现刚才提到的先进先出的排队功能,这就是队列。
队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。
假设队列是q = ( a1, a2,……, an),那么ai就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从ai开始,而插入时,列在最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列,最后面来的当然排在队伍最后。
队列在程序设计中用得非常频繁。前面我们已经举了两个例子,再比如用键盘进行各种字母或数字的输入,到显示器上比如记事本软件上的输出,其实就是队列的典型应用,假如你本来和女友聊天,想表达你是我的上帝,输入的是god,而屏幕上却显示出了dog发了出去,这真是要气死人了。
你在用电脑时有没有经历过这样的事?机器有时会处于疑似死机的状态,鼠标点什么似乎都没用,双击任何快捷方式都不动弹。就当你失去耐心,打算reset时。突然它像酒醒了一样,把你刚才点击的所有操作全部都按顺序执行了一遍。这其实是因为操作系统中的多个程序因需要通过一个通道输出,而按先后次序排队等待造成的。
再比如像移动、联通、电信等客服电话,客服人员与客户相比总是少数,在所有的客服人员都占线的情况下,客户会被要求等待,直到有某个客服人员空下来,才能让最先等待的客户接通电话。这里也是将所有当前拨打客服电话的客户进行了排队处理。
操作系统和客服系统中,都是应用了一种数据结构来实现刚才提到的先进先出的排队功能,这就是队列。
队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。
假设队列是q = ( a1, a2,……, an),那么ai就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从ai开始,而插入时,列在最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列,最后面来的当然排在队伍最后。
队列在程序设计中用得非常频繁。前面我们已经举了两个例子,再比如用键盘进行各种字母或数字的输入,到显示器上比如记事本软件上的输出,其实就是队列的典型应用,假如你本来和女友聊天,想表达你是我的上帝,输入的是god,而屏幕上却显示出了dog发了出去,这真是要气死人了。
相关文章推荐
- 数据结构学习之循环队列的另一种c++实现
- 并发无锁队列学习(数据结构)
- 这个学期要开始学习网页制作了,希望可以在这里学习更多的东西
- 数据结构和算法学习(4)-栈和队列
- 数据结构学习中的简单问题(一):用链表方式实现的队列输出杨辉三角
- 这个寒假真正意义的开始----第一天学习OC。
- 数据结构学习之队列
- 数据结构(队列)学习心得
- [导入]队列(C#数据结构学习三)
- 【数据结构学习6】队列学习
- 学习算法和数据结构:栈和队列
- 【学习点滴-数据结构-栈&队列】 栈的应用之一:数值转换
- 今天开始使用这个blog来记录我的学习中遇到的问题吧
- 【学习点滴-数据结构-栈&队列】 用两个栈模拟一个队列
- 我们今年刚开始学习数据结构啦!
- 数据结构学习-栈和队列(1)
- 数据结构学习(6):队列
- 数据结构学习笔记17——队列的总结与概括
- 队列的实现---数据结构学习(五)
- 数据结构学习笔记--队列