Last ned inputfiler og testprogram her.
Oppgave 1
For å kjøre en test i Java kan du gjøre følgende:
$ javac *.java $ java BinaryTreeSet < inputs/eksempel_input true false false 2
Tilsvarende i Python:
$ python3 binarytreeset.py < inputs/eksempel_input true false false 2
Her antar vi at du har lastet ned inputfilene som ligger innenfor en mappe som også inneholder BinaryTreeSet.java
eller binarytreeset.py
.
For å teste på større eksempler kan du gjøre en av følgende:
$ java BinaryTreeSet < inputs/input_100 | cmp - outputs/output_100 $ python3 binarytreeset.py < inputs/input_100 | cmp - outputs/output_100
Dersom ingenting skjer passerer testen. Dersom testen ikke passerer vil du få en utskrift som kan se slik ut:
$ java BinaryTreeSet < inputs/input_100 | cmp - outputs/output_100 - outputs/output_100 differ: char 1, line 1
Oppgave 2
Denne oppgaven kan testes på samme måte som oppgave 1.
Vi forventer ikke at programmet ditt er raskt nok til å håndtere alle testene. Løsningsforslaget løser input_1000000
på ca. 1 sekund.
Oppgave 3
Denne oppgaven kan testes på samme måte som oppgave 1.
Oppgave 4
For å teste programmet ditt kan du bruke programmet BalanceChecker.java (som må kompileres med javac BalanceChecker.java
):
$ seq 20 | java BalanceArray | java BalanceChecker
Eller for Python:
$ seq 20 | python3 balancearray.py | java BalanceChecker
Dersom programmet gjør som det skal bør du få følgende utskrift:
Dette treet ser balansert ut!
Dersom programmet ditt inneholder en feil bør du i stedet se:
$ seq 20 | java BalanceArray | java BalanceChecker Dette treet ser ikke helt balansert ut... prøv igjen!
Programmet bør fungere helt likt for oppgave (a) og (b). Altså kan du også kjøre følgende:
$ seq 20 | java BalanceHeap | java BalanceChecker Dette treet ser balansert ut!
Eller for Python:
$ seq 20 | python3 balanceheap.py | java BalanceChecker Dette treet ser balansert ut!
Denne videoen viser hvordan man kan komme i gang med oppgave 2 og oppgave 4 fra obligen i Java. I tillegg live-programmerer vi et program som tester oppgave 4, som innebærer å implementere et binært søketre i Java. Videoen er fra i høsten 2020, men oppgavene som nevnes er uendret fra i tidligere.