Stack.avt

Переключить прокрутку окна
Загрузить этот исходный код

/*
    Исходный код среды исполнения ПВТ-ОО.

    Этот исходный код является частью проекта ПВТ-ОО.

    Copyright © 2021 Малик Разработчик

    Это свободная программа: вы можете перераспространять её и/или
    изменять её на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
    в каком она была опубликована Фондом свободного программного обеспечения;
    либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.

    Эта программа распространяется в надежде, что она может быть полезна,
    но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
    или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
    общественной лицензии GNU.

    Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
    вместе с этой программой. Если это не так, см.
    <http://www.gnu.org/licenses/>.
*/

package avt.util;

public service Stack(Vector)
{
    public Stack clone() {
        int length = fldLength;
        Stack result = new Stack(length);
        Array.copy(fldElements, 0, result.fldElements, 0, length);
        return result;
    }

    public void push(boolean element) { append(element); }

    public void push(char element) { append(element); }

    public void push(byte element) { append(element); }

    public void push(byte2 element) { append(element); }

    public void push(byte4 element) { append(element); }

    public void push(byte8 element) { append(element); }

    public void push(short element) { append(element); }

    public void push(short2 element) { append(element); }

    public void push(short4 element) { append(element); }

    public void push(short8 element) { append(element); }

    public void push(int element) { append(element); }

    public void push(int2 element) { append(element); }

    public void push(int4 element) { append(element); }

    public void push(int8 element) { append(element); }

    public void push(long element) { append(element); }

    public void push(long2 element) { append(element); }

    public void push(long4 element) { append(element); }

    public void push(long8 element) { append(element); }

    public void push(float element) { append(element); }

    public void push(float2 element) { append(element); }

    public void push(float4 element) { append(element); }

    public void push(float8 element) { append(element); }

    public void push(double element) { append(element); }

    public void push(double2 element) { append(element); }

    public void push(double4 element) { append(element); }

    public void push(double8 element) { append(element); }

    public void push(real element) { append(element); }

    public void push(Object element) { append(element); }

    public Object pop() {
        int index = fldLength - 1;
        if(index < 0)
        {
            throw new EmptyStackException("стак пуст");
        }
        Object[] elements = fldElements;
        Object result = elements[index];
        elements[fldLength = index] = null;
        return result;
    }

    public Object peek() { return lastElement(); }
}