# Include <iostream> using namespace STD; struct queue {int maxcnt; int * elements; int front, rear ;}; queue * createqueue (INT max = 7) {queue * queue = (queue *) malloc (sizeof (Queue); queue-> front = 0; queue-> rear = 0; queue-> maxcnt = MAX + 1; // reserve a space to prevent false overflow. queue-> elements = new int [queue-> maxcnt]; return queue;} bool isfull (queue * Queue) {return (queue-> rear + 1) % queue-> maxcnt) = queue-> front;} bool isempty (queue * q Ueue) {return queue-> rear = queue-> front;} bool inqueue (queue * queue, int value) {If (isfull (Queue) return 0; queue-> elements [queue-> rear ++] = value; queue-> rear % = queue-> maxcnt; return 1;} bool dequeue (queue * queue, int * ans) {If (isempty (Queue) return 0; * ans = queue-> elements [queue-> front ++]; queue-> front % = queue-> maxcnt; return 1;} bool Front (queue * queue, int * ans) {If (isempty (Queue) return 0; * ans = Queue-> elements [queue-> front]; return 1;} void clearqueue (queue * Queue) {int X; while (! Isempty (Queue) {dequeue (queue, & X); cout <x <";}cout <Endl;} void output (queue * Queue) {int ST = queue-> front; int ED = queue-> rear; while (st! = Ed) {cout <queue-> elements [st] <"; ST ++; st % = queue-> maxcnt ;}cout <Endl ;} void main () {int Len = 4; queue * queue = createqueue (); int V; For (INT I = 0; I <Len; I ++) {v = rand () % 100; cout <v <""; inqueue (queue, v) ;}cout <Endl; output (Queue ); clearqueue (Queue); For (INT I = 0; I <5; I ++) {v = rand () % 100; cout <v <""; inqueue (queue, v) ;}cout <Endl; output (Queue); dequeue (queue, & V); cout <v <Endl; ou Tput (Queue); Front (queue, & V); cout <v <Endl; output (Queue); dequeue (queue, & V ); cout <v <Endl; output (Queue); dequeue (queue, & V); cout <v <Endl; output (Queue ); for (INT I = 0; I <5; I ++) {v = rand () % 100; cout <v <""; inqueue (queue, v) ;}cout <Endl; output (Queue); If (! Inqueue (queue, V) cout <"fail" <Endl; else output (Queue); dequeue (queue, & V); cout <v <Endl; output (Queue); dequeue (queue, & V); cout <v <Endl; output (Queue); dequeue (queue, & V ); cout <v <Endl; output (Queue); dequeue (queue, & V); cout <v <Endl; output (Queue ); for (INT I = 0; I <3; I ++) {v = rand () % 100; cout <v <""; inqueue (queue, v);} cout <Endl; output (Queue); CIN> Len ;}
Queue Array Implementation