程序设计与分析:队列、模型及编译流程
一、队列的设计与实现
1.1 队列初始化
队列使用 head 和 tail 变量来跟踪队列的两端。以下是队列的初始化代码:
void queue_init() {
/* initialize the queue data structure */
head = 0;
tail = 0;
}
在初始化时, head 和 tail 被设置为相同的位置。当向队列尾部添加值时, tail 会递增;当从队列头部移除值时, head 会递增。 head 的值始终等于队列第一个元素的位置(队列为空时除外),而 tail 指向队列下一个元素将存放的位置。当到达数组末尾时,这些值需要进行回绕。
1.2 入队操作
入队操作( enqueue )用于向队列尾部添加元素,代码如下:
void enqueue(int val) {
/* check for a full queue */
if (((tail+1) % Q_SIZE) == head) error("enqueue onto full queue",tail);
/* add val
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



