bild
Skolan för
elektroteknik
och datavetenskap

Hemtal 1

En stack kan implementaras med hjälp av en enkellänkad lista. Antag att vi har definierat en klass Node för noderna i listan och en variabel lista som är tänkt att hålla reda på listan:
class Node:
    info=""
    next=None

lista=None
Vilket av följande funktionsalternativ gör så att listan fungerar som en stack? Vad är det för fel på de andra alternativen?
  1. def laggTill(p):
        global lista
        p.next = lista
        lista = p
    
  2. def laggTill(p):
        global lista
        lista = p
        p.next = lista
    
  3. def laggTill(p):
        global lista
        if lista == None:
            lista = p
        else:
            q = lista
            while q.next != None:
                q = q.next
        q.next = p
    
Rita också vad som händer när de tre metoderna körs på en lista med fyra element enligt nedan:

Lista
Sidansvarig: Magnus Rosell <rosell@csc.kth.se>
Uppdaterad 2006-09-01