Klasa "Stos":

public class Stos
{
    int i; //wskaźnik stosu (oststniego jego elementu)  
    int[] tab = new int[10]; //tablica przechowująca elementy odłożone na stos
    public static void main(String[] args)
    {
        Stos s = new Stos();
        s.initialize();
        for(int k=0;k<s.tab.length;k++)
        {
        if(!s.full())s.push(k);
        else System.out.println("STOS JEST PEŁNY");
        }
        if(!s.full())s.push(44);
        else System.out.println("STOS JEST PEŁNY");
        for(int k=0;k<s.tab.length;k++)
        {
         System.out.println(s.tab[k]);
        }
        for(int k=0;k<s.tab.length;k++)
        {
        if(!s.empty())s.pop();
        else System.out.println("STOS JEST JUŻ PUSTY");
        }
        if(!s.empty())s.pop();
        else System.out.println("STOS JEST JUŻ PUSTY");
    }
    public Stos()// konstruktor obiektu
    {
        i = -1;
        for(int j=0;j<tab.length;j++)
        {
            tab[j] = 0;
        }
    }
    public void initialize()// metoda inicjalizacji (czyszczenia) stosu
    {
        i = -1;
        for(int j=0;j<tab.length;j++)
        {
            tab[j] = 0;
        }
    }
    public void push(int value)// dodanie elementu na wierzch stosu
    {
        i++;
        tab[i]=value;
    }
    public int pop()// zdejmowanie elementu z wierzchu stosu
    {
        int z = tab[i];
        tab[i] = 0;
        i--;
        return z;
    }
    
    public boolean full()// sprawdzenie czy stos jest pełny
    { // metoda zwraca wartość true gdy stos jest pełny
        if(i == (tab.length - 1)) return true;
        else return false;
    }
    public boolean empty()// sprawdzenie czy stos jest pusty
    { // metoda zawraca wartość true gdy stos jest pusty
        if(i == -1) return true;
        else return false;
    }
}
1

Klasa "Kolejka" z przesuwaniem elementów:

public class Kolejka
{
    int i; //wskaźnik końca kolejki (w tej realizacji początek kolejki zawsze jest w pierwszym elemencie tablicy tab[0] 
    int[] tab = new int[10]; // tablica przechowująca elementy kolejki
    public static void main(String[] args)
    {
        Kolejka kol = new Kolejka();
        kol.initialize();
        for(int n=0;n<kol.tab.length;n++)
        {
            if(!kol.full())kol.enq(n+1);
            else System.out.println("Kolejka jest pełna nie można dodać do niej kolejnego elementu");
        }
        if(!kol.full())kol.enq(77);
        else System.out.println("Kolejka jest pełna nie można dodać do niej kolejnego elementu");
        for(int n=0;n<kol.tab.length;n++)
        {
            System.out.println(kol.tab[n]);
        }
        for(int n=0;n<kol.tab.length;n++)
        {
            if(!kol.empty())kol.deq();
            else System.out.println("Kolejka jest już pusta\);
        }
        if(!kol.empty())kol.deq();
        else System.out.println("Kolejka jest już pusta");
    }
    public Kolejka()// konstruktor obiektu
    {
        i = -1;
        for(int j=0;j<tab.length;j++)
        {
            tab[j] = 0;
        }
    }
    public void initialize()// inicjalizacja (czyszczenie) kolejki
    {
        i = -1;
        for(int j=0;j<tab.length;j++)
        {
            tab[j] = 0;
        }
    }
    public void enq(int element)// dodanie elementu do kolejki
    {
        i++;
        tab[i] = element;
    }
    public int deq()// usunięcie elementu z kolejki
    {
        int z = tab[0]; // zczytanie pierwszego elementu kolejki
        for(int j=0;j<i;j++) // przesunięcie w pętli wszystkich elementów w kolejce o jedna pozycję
        {
            tab[j] = tab[j+1];
        }
        tab[i] = 0; // wyczyszczenie byłego ostatniego elementu w kolejce (został on on przepisany na jedno pole wcześniej w tablicy) 
        i--; // przesunięcie wskaźnika końca kolejki
        return z;
    }
    public boolean full()// sprawdzenie czy kolejka jest zapełniona
    {
        if(i == (tab.length - 1)) return true;
        else return false;
    }
    public boolean empty()// sprawdzenie czy kolejka jest pusta
    {
        if(i == -1) return true;
        else return false;
    }
}
1

Klasa "InnaKolejka" z innym rodzajem przesuwania elementów(NIE PRZETESTOWANA):

public class InnaKolejka
{
    int i; // wskaźnik początku kolejki
    int j; // wskaźnik końca kolejki
    int[] tab = new int[10]; // tablica przechowująca elementy kolejki
    public static void main(String[] args)
    {
        InnaKolejka kolejka = new InnaKolejka();
        for(int m=0;m<kolejka.tab.length;m++)
        {
            if(!kolejka.full()) kolejka.enq(m + 1);
            else System.out.println("Kolejka jest pełna");
        }
        if(!kolejka.full()) kolejka.enq(77);
        else System.out.println("Kolejka jest pełna");
        
    }
    public InnaKolejka()// Konstruktor obiektu
    {
        i = -1;    j = -1; // ustawienie wskaźników kolejki
        for(int k=0;k<tab.length;k++)
        {
            tab[k] = 0; //symboliczne czyszczenie tablicy 
        }
    }
    public void initialize() // inicjalizacja (czyszczenie) kolejki ustawia takie same parametry dla kolejki jak konstruktor
    {
        i = -1;
        j = -1;
        for(int k=0;k<tab.length;k++)
        {
            tab[k] = 0;
        }
    }
    public void enq(int element) // dodawanie elementu do tablicy
    {
        if(i==-1 && j==-j)
        { // obsłużenie wyjątkowego przypadku jakim jest dodanie pierwszego elementu do kolejki
            i++;j++;
            tab[j] = element;
        }
        else
        { // pozostałe przypadki dodania elementu do kolejki
            j++;
            tab[j] = element;
        }
        if(j==tab.length-1 && i>0)
        { // sprawdzenie czy należy przesunąć kolejkę
            przesun();
        }
    }
    public int deq() // metoda usuwania pierwszego elementu z kolejki
    { // obsłużenie przypadku gdy kolejka zawiera tylko jeden element 
        int z;
        if (i==j)
        {
            z = tab[i];
            initialize();
        }
        else
        { // gdy kolejka zawiera więcej niż jeden element
            z = tab[i];
            i++;
        }
        return z;
    }
    public boolean empty() // metoda sprawdza czy kolejka jest pusta, jeżeli tak, zwraca wartość true
    {
        if(i==-1 && j==-1) return true;
        else return false;
    }
    public boolean full() // metoda sprawdza czy kolejka jest pełna, jeżeli tak, zwraca wartość true
    {
        if(i==0 && j==tab.length-1) return true;
        else return false;
    }
    public void przesun() // przesuwamy wszystkie elementy w lewo w tablicy aby zapełnić wszystkie pute elementy na początku tablicy
    {
        for(int l=i;l>0;l--) // pętla zewnętrzna zapewnia wielokrotność przesunięcia w lewo tyle razy ile mamy pustych pół na początku tablicy
        {
            for(int k=l;k<tab.length;k++) // pętla wewnętrzna przesuwa każdy element o jedno pole "w lewo" (w kierunku początku tablicy)
            {
                tab[k-1] = tab[k];
            }
            tab[j]=0;
            j--;
            i--;
        }
    }
}
1