missnoobel
Nieuwe gebruiker
- Lid geworden
- 21 jan 2012
- Berichten
- 1
Hallo! Ik heb een probleem met de implementatie van mijn programmeer opdracht.
De specificatie is als hieronder gegeven. Mij lukt het echter niet dmv recursie een remove-methode op te stellen (dwz, +remove(s : String, r : SNode))
Iemand die mij kan helpen? Ik heb zelf:
public void remove(String s, SNode r){
if (r != null){
if (r.getValue().equals(s)){
if (r.getNext() != null){
r = r.getNext();
}
else {
r = null; (hier gaat het fout)
}
}
remove(s,r.getNext());
}
}
Heeel erg bedankt voor degene die hier even nou zou willen kijken want ik word gek!
SList
invariant: de Strings in de SList zijn in oplopende volgorde geordend
-head : SNode
+SList()
post: heeft een lege lijst gecreëerd.
+size() : int
post: retourneert het aantal elementen van de lijst.
+size(r : SNode) : int
post: retourneert het aantal elementen in de lijst die begint bij r.
+addSorted(s : String)
post: er is een nieuwe SNode die s bevat, aan de lijst toegevoegd.
+addSorted(s : String, r : SNode)
pre: de invariant geldt
post: er is een nieuwe SNode die s bevat, aan de lijst die bij r begint, toegevoegd.
+remove(s : String)
post: indien er in de lijst een SNode voorkomt die s bevat, is deze SNode verwijderd.
+remove(s : String, r : SNode)
post: indien er in de lijst die bij r begint, een SNode voorkomt die s bevat, is deze SNode verwijderd.
+find(s : String) : SNode
post: retourneert indien er in de lijst een SNode voorkomt die s bevat, een referentie naar deze SNode, retourneert anders null.
+find(s : String, r : SNode) : SNode
post: retourneert indien er in de lijst die bij r begint, een SNode voorkomt die s bevat, een referentie naar deze SNode, retourneert anders null.
+contains(s : String) : boolean
post: retourneert true dsd er een SNode in de lijst voorkomt die s bevat.
+toString() : String
post: retourneert String representatie van een lijst.
+toString(r : SNode) : String
post: retourneert String representatie van de lijst die begint bij r
De specificatie is als hieronder gegeven. Mij lukt het echter niet dmv recursie een remove-methode op te stellen (dwz, +remove(s : String, r : SNode))
Iemand die mij kan helpen? Ik heb zelf:
public void remove(String s, SNode r){
if (r != null){
if (r.getValue().equals(s)){
if (r.getNext() != null){
r = r.getNext();
}
else {
r = null; (hier gaat het fout)
}
}
remove(s,r.getNext());
}
}
Heeel erg bedankt voor degene die hier even nou zou willen kijken want ik word gek!
SList
invariant: de Strings in de SList zijn in oplopende volgorde geordend
-head : SNode
+SList()
post: heeft een lege lijst gecreëerd.
+size() : int
post: retourneert het aantal elementen van de lijst.
+size(r : SNode) : int
post: retourneert het aantal elementen in de lijst die begint bij r.
+addSorted(s : String)
post: er is een nieuwe SNode die s bevat, aan de lijst toegevoegd.
+addSorted(s : String, r : SNode)
pre: de invariant geldt
post: er is een nieuwe SNode die s bevat, aan de lijst die bij r begint, toegevoegd.
+remove(s : String)
post: indien er in de lijst een SNode voorkomt die s bevat, is deze SNode verwijderd.
+remove(s : String, r : SNode)
post: indien er in de lijst die bij r begint, een SNode voorkomt die s bevat, is deze SNode verwijderd.
+find(s : String) : SNode
post: retourneert indien er in de lijst een SNode voorkomt die s bevat, een referentie naar deze SNode, retourneert anders null.
+find(s : String, r : SNode) : SNode
post: retourneert indien er in de lijst die bij r begint, een SNode voorkomt die s bevat, een referentie naar deze SNode, retourneert anders null.
+contains(s : String) : boolean
post: retourneert true dsd er een SNode in de lijst voorkomt die s bevat.
+toString() : String
post: retourneert String representatie van een lijst.
+toString(r : SNode) : String
post: retourneert String representatie van de lijst die begint bij r