单队列:
// ConsoleApplication17.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include"iostream" using namespace std; #define MAX 1000 typedef int data; typedef struct { data a[MAX]; int front; int rear; }que; int init(que *p) { p->front = 0; p->rear = 1; return 0; } bool is_empty(que *p) { bool a = true; if (p->front == p->rear) a = true; else a = false; return a; } int print_front(que *p) { if (p->front == p->rear) cout << "It is empty" << endl; else { for (int i = p->front; i < p->rear-1; i++) cout << p->a[i] << endl; } return 0; } int insert_rear(que *p,data x) { if (p->rear == p->front) cout << "It is empty1" << endl; else if (p->rear == MAX) cout << "It is full!" << endl; else { p->a[p->rear-1] = x; p->rear++; } return 0; } int del(que *p) { if (p->rear == p->front) cout << "It is empty2" << endl; else p->front++; return 0; } int _tmain(int argc, _TCHAR* argv[]) { que qu, *p; p = &qu; init(p); for (int i = 0; i < 10; i++) insert_rear(p,i); print_front(p); for (int i = 0; i < 10; i++) del(p); print_front(p); return 0; }
循环队列:
循环队列满的条件为(p->rear+1)%MAX==p->front;
其余无区别
原文:https://www.cnblogs.com/butchert/p/12001567.html