Итак, у меня есть проблема, в которой у меня есть 2 очереди и 2 стека. A, B-очереди, C, D-стеки.
Мне нужно имитировать передачу данных , то есть когда элемент вставляется в Очередь , он должен быть переведен в D стек , затем далее в C стек и, наконец, в B очередь . Насколько я понял, симуляция должна быть только одним способом: от вставки в A-> D-> C -> B.
До сих пор я создал 2 класса, один стек, одну очередь оба реализуют интерфейс , который имеет методы Pu sh и Pop. Приведенный ниже код предназначен для очереди, я думаю, мне следует создать еще один TransferObject в основном классе, но способ его использования мне неизвестен.
public class Queue implements QueueAndStack {
public int n;
public int[] queueValues;
public Queue() {
n = 0;
queueValues = new int[n];
}
@Override
public void push(int pushedItem) {
n++;
int[] auxiliar = new int[n];
auxiliar[n - 1] = pushedItem;
for (int i = 0; i < n - 1; i++)
auxiliar[i] = queueValues[i];
queueValues = auxiliar;
System.out.println(pushedItem + " has been inserted succesfully into queue!");
}
@Override
public int pop() {
if (n > 0) {
int poppedItem = queueValues[0];
n--;
int[] auxiliar = new int[n];
for (int i = 0; i < n - 1; i++)
auxiliar[i] = queueValues[i + 1];
queueValues = auxiliar;
return poppedItem;
} else System.out.println("You can not pop from an empty queue");
return 0;
}
public void viewQueue() {
for (int i = 0; i < n; i++)
System.out.println("The element at index " + i + "is " + queueValues[i]);
}
}