Hemtal 3
A) Teorifrågor
- Kommer en postorder-utskrift av noderna
i ett binärträd att ge noderna i omvänd ordning mot
en preorder-utskrift?
- Ett binärträds noder är antingen löv eller inre noder.
Kan ett binärträd ha fler inre noder än löv? Rita och förklara!
- Kan man använda parametrar i rekursiva funktioner?
- Ett matrisproblem tar tid
T(n)=k*n3 att lösa,
där n är matrisens storlek. Om n ökar med en faktor tio, kan
vi då kompensera det genom att köpa en dator som är tio gånger snabbare?
- Är komplexiteten för binärsökning i en vektor/lista
alltid densamma som komplexiteten för sökning i ett binärt sökträd?
- Ordna följande funktioner efter hur snabbt dom växer:
N, N2, Nlog(N), Nlog(N2), 1/N, 3N, 2N/5, 1009, N3, N2log(N)
- Hur skiljer sig breddenförstsökning från djupetförstsökning?
Rita och berätta!
B) Problemträd
- Föreslå en metod för att lösa följande problem:
Vilka ord kan man bilda av bokstäverna i ordet "komplexitet"?
Några exempel är orden "lim", "textil" och "tio".
Rita och berätta hur man skulle kunna lösa problemet ovan
med ett program (men skriv inte programkoden).
C) Pythons dictionary
En av Pythons inbyggda datastrukturer är dictionary .
Läs om den i en Python-bok eller på
docs.python.org
och svara på följande frågor:
- Hur skapar man en tom dictionary?
- Hur lägger man in nya värden?
- Hur hämtar man ett lagrat värde?
- Vad gör metoden
keys() ?
- Vad gör metoden
values() ?
- Vad skulle du använda en dictionary till?
|