Является ли это правильным кодом для круговой очереди с использованием массива
#include<iostream> #include<conio.h> using namespace std; #define MAX 6 int arr[MAX]; int a_pt = -1, r_pt = -1; int pop() { if (a_pt==-1 && r_pt ==-1) { cout << "\nQUEUE IS EMPTY"; return NULL; } if(r_pt==MAX-1) { r_pt = 0; if (a_pt==0) { a_pt = -1, r_pt = -1; } return arr[MAX-1]; } int x = r_pt; if (r_pt + 1 == a_pt) { a_pt = -1; r_pt = -1; return arr[x];} return arr[r_pt++]; } void push(int val) { if (a_pt == -1 && r_pt == -1) { ++a_pt; ++r_pt; arr[a_pt++] = val; } else if (a_pt == MAX-1) { a_pt = 0; arr[MAX - 1] = val; } else if (a_pt==r_pt) { cout << "\nQue is full"; } else { arr[a_pt++] = val; } } int main() { push(10); push(20); push(30); push(40); push(50); push(60); push(70); _getch(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); cout << endl << "VALUE POPPED IS :" << pop(); _getch(); return 0; }
Что я уже пробовал:
пробовал некоторые операции и они были правильными