Как мне ограничить доступность методов? - PullRequest
0 голосов
/ 01 февраля 2020

Итак, у меня есть проблема, в которой у меня есть 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]);
}

}

...