树上小屋

这是一个将艺术和工程融为一体的活计.

导航

队列长度不能小于2

如果像下面这样判断空和满...

const int len = 10;
int queue[len], head = 0, tail = 0;

inline 
bool isfull ()
{
    
return (tail+1)%len == head;
}


inline 
bool isempty ()
{
    
return head == tail;
}

毛病出在tail上,因为tail的当前位置是不能有任何元素的,必须要多占一个空地才能把空和满区别开. 所以如果队列空间为len的话,最多放len-1个元素,这就是队长不能为1的原因了.

还有我觉得队列是个很让人尴尬的东西,像上面那样把队列做成全局变量是不是很难受啊.我总想把它封装起来,但仅仅为了编一个小程序就让定义队列的代码占了一半,更难受了. 看来用stl的队列是最好的选择了.

posted on 2006-07-19 15:05  euclid  阅读(240)  评论(0编辑  收藏  举报