Code review för Semihs LinkedList och BinarySearchTree
|
————-Linked List————- Metoden Find saknas i LinkedList. En Find-metod ska finnas enligt uppgiften. Övriga metoder fungerade bra. Genom unit-testing upptäcktes inga fel. Metoderna gjorde så som man förväntade sig. Genom visual studios debuggnings-verktyg gick det även att se att elementen i listan placerades korrekt efter användning av metoderna. Petitesser: ..skulle placera ‘Node’ structen i samma .h-fil som ‘LinkedList’, förslagsvis som private i LinkedList-klassen, för att göra ‘LinkedList’ oberoende av andra lösa filer (Node.h). Namnge ‘leftNode’ och ‘rightNode’ som ‘previousNode’ och ‘nextNode’ för tydlighet (enligt mig…). Dessutom hade nog bara en ‘nextNode’ behövts för varje node. Från en av .pdf-filerna (från lektioner) har du gjort en ”doubly”-LinkedList, där noderna pekar på både sina föregångare och nästa nod. Det funkar ju. Metoden ‘At’ returnerar int-värden i rad 102 och 107 och kan därför inte användas med datatyper som inte kan kastas om till nummer-värden, bl.a. egna klasser och structs. Exempel: om en ‘LinkedList’ skapas och ska använda metoden At så kan inte programmet kompileras enligt Visual Studio. Samma gäller metoderna ‘First’ och ‘Last’. Dock spelar det ingen roll för uppgiften eftersom de inte ingick i uppgiftens kriterier. ————-Binary Search Tree————- Metoden ‘insert’ lägger till nya noder då ett värde redan finns i trädet. I exemplet nedan borde andra och tredje ‘Insert(2)’ inte lägga till nya noder eftersom värdet 2 redan finns i trädet(Tommi Lipponen, föreläsning). BinarySearchTree tree; tree.Insert(2); verify(4, tree.Size(), ”Size() after 6 inserts where 3 are equal values”); konsolen: ”Failed! Expected: 4 Got: 6 – Size() after 6 inserts where 3 are equal values” Utöver detta fungerade BinarySearchTree bra. Metoderna fungerade så som man förväntade sig om dom. Genom unit-testing upptäcktes inga fel. Metoderna In_Order_Traversal, Pre_Order_Traversal och Post_Order_Traversal testades genom Visual Studios debug-verktyg där värderna och ordningen på alla Node’s kollades om de stämde. Likadant gjordes när Node-placeringarna stämde rätt när man använde Insert för att lägga in värden i BinarySearchTree. ————-RESULTAT————— FAIL: 1. Skapa en Find-metod i LinkedList som returnerar true om ett värde finns i listan och false om ett värde inte finns i listan. /Johannes Westberg |