. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->算法讲堂讨论区
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  循环队列如何判空判满?  [已解决] 回复[ 14次 ]   点击[ 1445次 ]  
mouse
[帖 主]   [ 发表时间:2007-12-11 14:09 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
循环队列有着首尾指针,但是随着入队和出队就变化了,怎么才能判断空满呢?
fishboy
[第1楼]   [ 回复时间:2007-12-11 15:34 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
可以保持设置一个头节点,这个结点不存放数据,主要用来判断头尾指针的位置关系,从而达到判断空满的作用。如次一来,当head==tail的时候,队列为空;当tail++ == head的时候,就是队列满了。
bug
[第2楼]   [ 回复时间:2007-12-11 16:04 ]   [引用]   [回复]   [ top ] 
荣誉值:22
信誉值:0
注册日期:2007-09-24 10:42
支持楼上
mouse
[第3楼]   [ 回复时间:2007-12-12 11:48 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
那就是说申请50个空间,只能利用49个空间了,浪费了一个。如果这个队列中存放的是一个结构体,会不会浪费有些大,还有其它的办法吗?

谢谢
jyxh2
[第4楼]   [ 回复时间:2007-12-14 10:23 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2007-06-26 11:52
增加一个长度变量,标记当前的单位空间个数,与最大空间个数比较来判断空满。
jyxh2
[第5楼]   [ 回复时间:2007-12-14 10:25 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2007-06-26 11:52
增加一个长度变量,标记当前的有效单位数据个数,与最大空间个数比较来判断空满。
fishboy
[第6楼]   [ 回复时间:2007-12-14 10:57 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
楼上的意见存在局限性,如果你存放的数据个数超过了你的长度变量能表示的最大值了呢?
mouse
[第7楼]   [ 回复时间:2007-12-16 10:26 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
书上还有一个定义一个标志的方法,也没有浪费空间,我觉得还不错。

不过听说缓冲区就用的“一个空间”判断这个方法,不知道为什么明明知道浪费一个空间还用这个方法?
zysong
[第8楼]   [ 回复时间:2007-12-18 17:40 ]   [引用]   [回复]   [ top ] 
荣誉值:19
信誉值:0
注册日期:2007-07-05 17:25
1楼判断满应该是((tail + 1) % 队列的最大长度) == head
mouse
[第9楼]   [ 回复时间:2007-12-20 10:16 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
可能是原来计算机很珍贵的时候才会在乎这一个空间,现在定义一个变量都四个字节了,也没什么浪费的,只要能判断队列的空满就好了,谢谢大家的回答。
bracket
[第10楼]   [ 回复时间:2007-12-25 13:17 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2007-12-25 13:06
和顺序表一样增加一个长度变量,就不用使用头尾指针来判断空满了~
mouse
[第11楼]   [ 回复时间:2008-01-02 14:13 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
跳出了头尾指针的使用,用了参数长度,确实不存在判别两个指针相等的情况了~
zkkpkk
[第12楼]   [ 回复时间:2008-02-03 01:57 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:8
注册日期:2008-01-12 10:11
队尾指针加1取队列长度的MOD等于队头指针的时候队满
chayujin
[第13楼]   [ 回复时间:2008-03-15 17:55 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2007-08-22 13:44
同意第二楼的看法,实际上它可以用数据结构的“栈和队列”来处理。
mouse
[第14楼]   [ 回复时间:2008-03-28 09:24 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
此贴由 贴主 于 [ 2008-03-28 09:24 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(fishboy):3分   2楼(bug):2分   4楼(jyxh2):2分   8楼(zysong):2分   10楼(bracket):2分   12楼(zkkpkk):2分   13楼(chayujin):2分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved