Я хочу удалить элементы из очереди, я могу удалить значения и затем добавить их обратно, но когда я пытаюсь удалить значения, он заменяет старые значения новыми значениями. например, если я добавляю значения 1,2,3,4,5,6,7,8,9,10, а затем удаляю значения 1 и 2 и добавляю значения 11 и 12. Когда я начинаю удалять остальные значения, которые он пропускает значения 9 и 10, как 11 и 12 заменил их, например, удалить значения 3,4,5,6,7,8, 11, 12, но я не хочу, чтобы он показывал удаленные значения, 3 , 4, 5, 6, 7, 8, 9, 10, 11, 12. Как я могу это сделать?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace queue
{
class Program
{
static void Main(string[] args)
{
int max = 10;
int[] a;
a = new int[max];
int input; //user input
int front = 0;
int rear = 0;
int j = 0;
do
{
Console.WriteLine
("What do you want to do?");
Console.WriteLine();
Console.WriteLine("Add = 1");
Console.WriteLine("Dequeue = 2");
Console.WriteLine("Exit = 3");
Console.WriteLine();
input = int.Parse(Console.ReadLine());
Console.WriteLine();
if (input == 1)
{
Console.WriteLine("Add");
if (rear != max)
{
Console.WriteLine("What do you want to add?");
int v; //value
v = int.Parse(Console.ReadLine());
a[j] = v;
j++;
rear++;
}
else
Console.WriteLine("Queue is full");
}
else if (input == 2)
{
Console.WriteLine();
Console.WriteLine("Dequeue");
if (rear != 0)
{
Console.WriteLine("The dequeue value is:" + a[front++]);
rear--;
j--;
}
else
Console.WriteLine(" Queue is empty");
}
else if (input == 3)
{
Console.WriteLine("Exit program");
Console.WriteLine();
}
else
{
Console.WriteLine("Enter option");
Console.WriteLine();
}
} while (input != 'X');
}
}
}