#!/usr/bin/env python
#-*- coding: UTF-8 -*-
#
# Aufgabe 5: Stackklasse, (LIFO, pushdown list)
# Author: Matthias Rebel, 731220

class Stack:
    "ein Stack als Liste, wobei das Ende der Liste = die Oberseite des Stack ist"

    def __init__(self):
        " stack constructor "
        self.stack = [];

    def empty(self):
        " True, wenn der Stack leer ist "
        return self.stack == []

    def pop(self):
        " löscht das oberste Element "
        del self.stack[-1]

    def push(self,new_E):
        " ergänzt das Element new_E "
        self.stack.append(new_E)

    def size(self):
        " returns Länge der Liste = size "
        return len(self.stack)

    def top(self):
        " returns oberstes Element "
        return self.stack[-1]