Aufgabe 10.6


Setz doch einfach beide Elemente auf null, das lässt sich dann im restlichen Programm sehr bequem handhaben.


Du solltest es ohne this.ende probieren, denn dann wird es einfacher.


hi,
wie habt ihr euren Iterator eingebungen? Ich hab mich ein wenig im internet umgesehen und auch im script, wie bereits gepostet, wurde der Iterator als eine private(annonyme) Klasse Iterator eingebunden. Mein Compiler sagt dann folgerichtig dass er diese Klasse nicht finden kann, im Interface ist ja nur die methode Iterator() aufgeführt. Gibts da’n trick, wie man z.b. dem compiler vorspielt, dasses sich um eine methode handelt?

und noch eine Frage, weil ich mir mit so etwas schwer tue, könnte dass so:
public class Warteschlange implements PrioritaetsWarteschlange {
stimmen?

merci


Es gibt zwei Möglichkeiten und beide wurden uns in der Vorlesung gezeigt. Guck dir doch mal Folie 14-23 und 14-31 an. Die Klasse kann entweder als nested class oder komplett in iterator() geschrieben werden.


Vielen Dank für die Hilfe/Tipps :slight_smile:


hi
ich hab auch mal ein testcase geschrieben
wer will kanns gern mal ausprobieren

damit das ordentlich funst braucht ihr in eurer Wartschalnge die funktion

	public String toString() {
		if (this.empty()) {
			return ("Leere PrioritaetsWarteschlange.");
		}
		else {
			String rueckgabe = "PrioritaetsWarteschlange: ";
			Iterator<PriorisiertesElement<WertType>> alleLesen = this.iterator();
			PriorisiertesElement<WertType> aktuell = null;
			while (alleLesen.hasNext()) {
				aktuell = alleLesen.next();
				rueckgabe = rueckgabe + "(" + aktuell.wert() + "," + aktuell.prioritaet() + ") ";
			}
			return rueckgabe;
		}
	}

auf rechtschreibung ist bei mir immer nix zu geben also nicht wundern

Attachment:
test.java: https://fsi.cs.fau.de/unb-attachments/post_47543/test.java


Hübscher Testcase :slight_smile: Meine Testcases sehen nie so sauber aus, geschweige denn kann man mit ihnen was anfangen, wenn man sie nicht geschrieben hat (d.h. != ich ist ;)). Läuft perfekt durch :slight_smile:


Guter Testcase, vor allem von der Ausgabe her. :slight_smile:
Was noch schön wäre, wäre am Schluss ein “deine Lösung hat keine Fehler” bzw. “deine Lösung hat Fehler”.


dazu war ich diesmal ehrlich gesagt zu faul :slight_smile:
weil ständig diese

If (string_erwartet.equals(string_rueckgabe) == true) {
bestanden++;
}

evtl beim nächsten mal :stuck_out_tongue:

grundlegender fehler :
hab irgednwie schon beim konstruktor nen fehler drin :
public class Warteschlange implements PrioritaetsWarteschlange {

private Element<WertType> head;
private int size;

public Warteschlange(){
	this.head = new Element<WertType>(null, null);
	this.size = 0;
}


Fehlermeldung :

Warteschlange.java:14: cannot find symbol

symbol : constructor Element(,)

location: class PrioritaetsWarteschlange.Element

	this.head = new Element(null, null);

                    ^

kann mir da wer helfen ?


Die Priorität ist vom Typ int, also ein primitiver Typ. Die funktionieren nicht mit pointern, sondern direkt.


OMG , danke


Servus,
da ich mich auch grade mit der PrioWarteschlange beschäftige, eine Frage ;)…

Ich habe mich entschlossen, dass ganze mit Header-Element zu machen - nur was für ne Priorität habt ihr dem Ding gegeben?
Wenn ich dem jetzt 0 gebe, und nen Element mit -1 kommt wird das ganze schnell sehr falsch.

Oder habe ich mal wieder nen Denkfehler?
Danke, powerbar


denk fehler weil man nicht beim header anfängt zu suchen sondern ein element danach


Mal ne Frage,

wenn ich in ner Methode ein Objekt a übergeben bekomme, und danach ein neues Objekt b erstelle, und dem dann

Objekt b = a;

zuweise, hat b dann eine Referenz auf a, so dass ich wenn ich b verändere auch a verändere, oder is b dann ne Kopie?

THX


Referenz auf “a” und du veränderst “a” damit…


shit!

Weisst du wie ich ne Kopie herbekomme?


klar, mit .clone(); diese Methode musst du aber selbst implementieren

die Frage die bleibt, wieso brauchst du ne Kopie?


wollte mir des enqueAll etwas einfacher machen… Etz werd ichs wohl doch mim Iterator versuchen…
Blick nur beim Remove noch nicht so ganz durch…

Trotzdem Danke für die Hilfe!


Ich nu wieder…

Des mit dem remove verwirrt mich irgendwie n bischen… was genau soll die remove Methode in meinem Iterator machen? letztes löschen? Das mittlere von dreien löschen? Ostereier legen?

Plz help!