Exkurs - Implementierung einer Stapel-Klasse
Stapel als Klasse
Der Datentyp Stapel soll als Klasse implementiert werden. 
Das folgende Klassendiagramm zeigt eine Modellierung der Klasse Stapel,
bei der eine Liste zur Datenhaltung benutzt wird. 
Beachte, dass auch andere Modellierungen hier möglich sind.
Aufgabe 1
Implementiere die Stapeloperationen. Die Testaufrufe innerhalb der Funktionsdefinitionen verdeutlichen das gewünschte Verhalten.
class Stapel(object):
    # Es können Daten beliebigen Typs auf den Stapel gelegt werden.
    # Alle Stapelelemente werden in einer Liste verwaltet.
    # Dabei werden die Elemente folgendermaßen angeordnet:
    # [... <- unten ... oben -> ...}
    
    def __init__(self, pListe = []):
        """ 
        >>> s = Stapel()
        >>> s.liste
        []
        >>> s = Stapel(['a', 'b', 'c'])
        >>> s.liste
        ['a', 'b', 'c']
        """
        pass
    def isEmpty(self):
        """
        >>> s = Stapel()
        >>> s.isEmpty()
        True
        >>> s = Stapel(['a', 'b', 'c'])
        >>> s.isEmpty()
        False
        """
        pass
    def push(self, element):
        """
        >>> s = Stapel(['a', 'b'])
        >>> s.push('c')
        >>> s.liste
        ['a', 'b', 'c']
        """
        pass
    def pop(self):
        """
        >>> s = Stapel()
        >>> s.pop()
        >>> s.liste
        []
        >>> s = Stapel(['a', 'b', 'c'])
        >>> s.pop()
        'c'
        >>> s.liste
        ['a', 'b']
        """
        pass
    
    def top(self):
        """
        >>> s = Stapel(['a', 'b', 'c'])
        >>> s.top()
        'c'
        >>> s = Stapel()
        >>> s.top()
        """
        pass
    
    def setStapel(self, pListe):
        """
        >>> s = Stapel()
        >>> s.setStapel(['a', 'b', 'c'])
        >>> s.liste
        ['a', 'b', 'c']
        """
        pass
    def getStapel(self):
        """
        >>> s = Stapel()
        >>> s.setStapel(['a', 'b', 'c'])
        >>> s.getStapel()
        ['a', 'b', 'c']
        """
        pass
                
if __name__=='__main__':
    import doctest
    doctest.testmod(verbose=False)
Aufgabe 2
Teste selbst noch einmal sämtliche Stapeloperationen, z.B. so:
>>> s = Stapel() >>> s.push(6) >>> s.getStapel() [6] >>> s.push(3) >>> s.getStapel() [6, 3] >>> s.top() 3 >>> s.pop() 3 >>> s.getStapel() [6] ...