Voor zover ik weet is dat geen module van meneer Arickx, maar iets standaard Oberon'ig.
Ik heb een gelinktelijstmodule geschreven, die in staat is om:
Empty, Enumerate, EnumerateReverse, IsEmpty, NodeDelete, NodeExchange, NodeInsert, NodeInsertAfter, Print (basically een call naar Enumerate), ReturnLastNode, ReturnPreviousNode en SetCurrent (maar ik gebruik die current-pointer eigenlijk nergens, en niet overal wordt hij juist gezet ook).
Hierop verder bouwend heb ik om te oefenen een selection sort, insertion sort, quick sort en bubble sort geïmplementeerd.
Ohja, voor elke mogelijke lijst heb ik uitbreidingen gemaakt, zodat bepaalde procedures veel sneller werken. EnumerateReverse op een enkelgelinkte lijst is O(n!), dubbelgelinkt wordt dat nog maar O(n). Quite a difference
. Zeker ook bij het sorteren helpt het. You never know dat de opgave expliciet niet-circulair of enkelgelinkt is, ze hebben me al 's een opdracht laten aanpassen door een van hun stomme grillen
.
Hoe ga jij trouwens op een nette manier het sorteren in de lijstmodule zelf uitwerken? Je werkt dan toch sowieso met een vast veld waarop gesorteerd wordt, terwijl je niet weet op welk veld er uiteindelijk moet gesorteerd worden? Dan zit je met een veld key, terwijl je eigenlijk op prijs moet sorteren bijvoorbeeld. Het wérkt natuurlijk wel, maar naamgevingtechnisch is het niet zo mooi
.
Voorts neem ik al mijn opdrachten/reeksen mee, de drie tuyeauxexamens die ik gemaakt heb, de dynamische vier-op-een-rij die ik van Nils moest schrijven omdat ik anders niks te doen had en het Oberonboek van de bib
.
Maar, dat examen is nog een halve maand ver, waar zit je je nu al zorgen om te maken
.