bintree.py ska du skriva en class bintree: med
tre anrop, nämligen följande (som kan tänkas stå i huvudprogrammet
lab3.py).
from bintree import bintree # Övrigt i filen förblir dolt
svenska=bintree()
svenska.put("gurka")
- - -
if svenska.exists("gurka"):
- - -
svenska.write() # Skriver alla ord i bokstavsordning
När trädobjektets put("gurka") anropas skickar trädet sin
rotpekare och det nya ordet till en rekursiv funktion putta
som ser till att en ny nod skapas på rätt ställe. Analogt gör de
övriga anropen, alltså så här.
class bintree:
root=None
def put(self,newvalue):
self.root=putta(self.root,newvalue)
def exists(self,value):
return finns(self.root,value)
def write(self):
skriv(self.root)
print
Här är klassen slut men sedan kommer definitionerna av
putta, finns och skriv.
Om man försöker lägga in en dubblett ska putta bara
skriva ut den på skärmen.
Det finns förstås också en class node: i bintreefilen som
innehåller ett värde och två pekare.
I lab3.py ska du först läsa in hela
filen /info/grudat06/word3.txt i trädet,
till exempel så här.
svenskfil=open("word3.txt") # Öppnar filen för läsning
for rad in svenskfil.readlines():
ord=rad[0:3] # Ett trebokstavsord per rad
svenska.put(ord) # in i sökträdet
Om du gjort rätt kommer dom dubblettord som spottas ut att bilda ett
viktigt budskap.
if engelska.exists(...). Om ordet redan fanns gör du ingenting, men om det är nytt ska
du också kolla om det råkar finnas som svenskt ord. I så fall ska det
skrivas ut på skärmen.
Om du har gjort rätt kommer dom utskrivna orden att bilda ännu ett hemligt budskap! När du mottagit det kan du försöka få underskrift av en lärare.
Alpin pinal: Undersök vilka fembokstavsord som blir ett annat ord när dom två första bokstäverna flyttas sist. Du kan använda ordlistan /info/grudat06/word5.txt.