Gowtham Gampala Ответов: 1

Является ли это правильным кодом для круговой очереди с использованием массива


#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;
}


Что я уже пробовал:

пробовал некоторые операции и они были правильными

1 Ответов

Рейтинг:
2

0x01AA

Честно говоря, я не думаю, что кто-то здесь хочет просматривать/проверять/тестировать ваш код. Не стесняйтесь возвращаться, если у вас возникнут проблемы с вашим кодом.

"пробовал некоторые операции, и они были правильными ":
По крайней мере хороший знак ;)

[Редактировать]
Прости, я забыл:
Один очень большой палец вверх, что вы признаете/осознаете, что некоторые положительные тесты не означают, что код определенно в порядке.
[/Редактировать]


Gowtham Gampala

- Да, сэр...Конечно спасибо :)