首页 > 代码库 > 算法导论-------------队列(queue)的简单实现
算法导论-------------队列(queue)的简单实现
队列的基本操作包括入队enqueue和出队dequeue,队列有队头head和队尾tail指针。元素总是从队头出,从队尾入。采用数组实现队列时候,为了合理利用空间,可以采用循环实现队列空间的有效利用。
#include<iostream> using namespace std; struct queue { int *q; int queuesize; int head; int tail; }; void init(queue* q, int n) { q->head = 0; q->tail = 0; q->queuesize = n; q->q = (int*)malloc(sizeof(int)*q->queuesize); } void enqueue(queue* q, int x) { if (((q->tail + 1) % q->queuesize) == q->head) { cout << "queue is full" << endl; } else { q->q[q->tail] = x; q->tail = (q->tail + 1) % q->queuesize; } } int dequeue(queue* q, int *value) { if (q->tail == q->head) return -1; else { *value = http://www.mamicode.com/q->q[q->head];>算法导论-------------队列(queue)的简单实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。