trees

Status
Nicht offen für weitere Antworten.

kara

Mitglied
Könnte mir jemand meine Fehler verbessern ?

Code:
public void empty(){
root == null;
}
 
public boolean isEmpty(){
return root == null;
 
public key(int elem){
key = elem;
links = null;
rechts = null;
}
 
public boolean son(int elem)
{
return search(elem, root)
}
private boolean serach(int elem, key t){
if (k == null) return fals;
if (k.date == elem)
return tree;
if (k.data > elem) return search(elem k.links);
if (k.date< elem) return search(elem k.recht);
}
 

Anhänge

  • aufgabe2.jpg
    aufgabe2.jpg
    97,9 KB · Aufrufe: 50

0x7F800000

Top Contributor
Könnte mir jemand meine Fehler verbessern ?
Wenn ich mir den sogenannten ...code? anschaue, dann erscheint mir der vorschlag "alles Löschen, neuanfangen" am sinnvollsten ???:L

Du hast nicht beschrieben, was du da in etwa versucht hast.
Du hast keinerlei Versuche unternommen, die "Fehler" irgendwie zu beschreiben, von exakten Exceptions ist erst recht weit und breit nichts zu sehen.
Du hast den code sicher nicht versucht durch den Compiler zu jagen, da sind eine Million grundlegendster syntaktischer fehler drin.
In jeder Zeile sind zudem etwa 5 billige Rechtschreibfehler zu sehen, daher vermute ich mal, dass du dir den "code" (bzw. diesen teilweise geklammerten buchstabensalat) nicht mal zum zweiten mal durchgelesen hast...
Du hast also anscheinend etwa 7 von 9 regeln/ratschlägen aus dieser Liste:
http://www.java-forum.org/java-basics-anfaenger-themen/15634-vor-dem-ersten-posten-bitte-lesen.html
ignoriert :noe: , bzw die Liste gar nicht erst durchgelesen...

Wenn du zum ersten mal etwas im Forum fragst: halb so wild, aber achte beim nächsten Versuch auf das hier: http://www.java-forum.org/forum-faq-beitraege/81529-wie-man-fragen-richtig-stellt.html sonst können wir auch nicht weiterhelfen, hier gibt es nicht allzuviele Hellseher.

Lesen schadet nicht, um sich ein wenig Überblick zu verschaffen:
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2 Sprachbeschreibung
...kostet ja zum Glück nichts.
(wenn dagegen die Aufgabe einfach für irgendeinen Preis gelöst werden soll, dann gehört das in den "Jobbörse"-Subforum...)
 
Zuletzt bearbeitet:

hdi

Top Contributor
Ein "Hallo" wär ja auch nich verkehrt für den ersten Post oder ;)

Java:
private boolean serach(int elem, key t){
if (k == null) return fals;
if (k.date == elem)
return tree;
if (k.data > elem) return search(elem k.links);
if (k.date< elem) return search(elem k.recht);
}

Was ist "tree" und was ist "k"? Du rufst die Methode ausserdem mit 2 Parametern ohne Komma-Trennung auf. (beim rekursiven Aufruf)
 

kara

Mitglied
Ein "Hallo" wär ja auch nich verkehrt für den ersten Post oder ;)



Java Code:
123456789</p><p>public boolean search (int elem, key t){</p><p>if (t == null) return false;</p><p>if (t.data == elem)</p><p>return true;</p><p>if(t.data > elem) return search (elem t.links);</p><p>if(t.data < elem) return search (elem t.rechts);</p><p>&nbsp;</p><p>​









Was ist "tree" und was ist "k"? Du rufst die Methode ausserdem mit 2 Parametern ohne Komma-Trennung auf. (beim rekursiven Aufruf)
ich denke so ist es etwas besser...das ist eine Frage keine Hausaufgabe
bitte schauen sie ob es besser ist (ich bin nicht aus Deutschland tut mir leid
meine Art)!
 
Zuletzt bearbeitet:

hdi

Top Contributor
Ich seh nix. In dem Code ist nicht einsehbar was "tree" und "k" sein soll. Wahrscheinlich gibt's die Variablen auch nicht. Aber du bist mir gleich mal unsymphatisch, mit so einem Erstauftritt. Kein Bitte kein Danke, was soll denn das :bahnhof:

Ausserdem: Wir machen keine Hausaufgaben. Und das ist ja eindeutig eine Hausaufgabe, also lies mal die ersten 3 Seiten deines Java-Buches und lös es einfach selber.
 
Zuletzt bearbeitet:

0x7F800000

Top Contributor
beim zweiten mal schmeckt der Buchstabensalat leider auch nicht besser :rolleyes:
Die Frage von hdi bzgl. "k" und "tree" ist absolut berechtigt, und die Hinweise auf Forenregeln sollte man eigentlich auch nicht allzu oft ignorieren :autsch:

hdi hat gesagt.:
Aber du bist mir gleich mal unsymphatisch, mit so einem Erstauftritt. Kein Bitte kein Danke, was soll denn das :bahnhof:
Ausserdem: Wir machen keine Hausaufgaben. Und das ist ja eindeutig eine Hausaufgabe, also lies mal die ersten 3 Seiten deines Java-Buches und lös es einfach selber.
joah, wir wollen's ja nicht gleich übertreiben... ;)
 

kara

Mitglied
ich bin ja nicht fertig ich bin nicht 20Jahre alt ich bin sogar älter als sie und sie fahren ein wie ein Düsenzug ich glaube es ja nicht ich werde das noch hinschreiben...sie müssen halt gedult haben...
 

hdi

Top Contributor
Naja woher sollen wir wissen ob du noch irgendwas hinschreiben wirst? Stelle die Frage doch gleich komplett ;) Das Argument mit dem Alter verstehe ich übrigens nicht. Ein hallo, bitte und danke ist einfach normal, und zwar egal ob man 12 ist oder 80.
 

kara

Mitglied
Ich seh nix. In dem Code ist nicht einsehbar was "tree" und "k" sein soll. Wahrscheinlich gibt's die Variablen auch nicht. Aber du bist mir gleich mal unsymphatisch, mit so einem Erstauftritt. Kein Bitte kein Danke, was soll denn das :bahnhof:

Ausserdem: Wir machen keine Hausaufgaben. Und das ist ja eindeutig eine Hausaufgabe, also lies mal die ersten 3 Seiten deines Java-Buches und lös es einfach selber.

ich lasse mich nicht dermassen fertig machen was soll das ich bin nicht 20 jahre alt mit denen können Sie das machen reden sie sachlich mit mir
 

kara

Mitglied
Naja woher sollen wir wissen ob du noch irgendwas hinschreiben wirst? Stelle die Frage doch gleich komplett ;) Das Argument mit dem Alter verstehe ich übrigens nicht. Ein hallo, bitte und danke ist einfach normal, und zwar egal ob man 12 ist oder 80.

ich bin ja dran ich habe leider den falschen knopf gedrückt tut mir leid ich mache das zum ersten mal vielleicht sind alle mit 50 dumm
 

hdi

Top Contributor
Na wenn das ein Unfall war entschuldige ich mich. Aber hör mal auf mit dem Alter... ;) Soll das heissen mit einem 20.jährigen kann man unfreundlicher umgehen als mit einem 50.jährigen, einfach nur wegen des Alters? So sehe ich das nicht, es ist mir egal wie alt du bist. Wenn hier jmd antanzt und eine Hausaufgabe hinklatscht ohne hallo und nix, dann ist doch nicht angemessen, und 50 Jahre sind da kein Bonus. Naja egal, vergessen wir's ;) Sag einfach Bescheid wenn du alles gepostet hast, was du posten wolltest.
 

0x7F800000

Top Contributor
ich bin ja dran ich habe leider den falschen knopf gedrückt tut mir leid ich mache das zum ersten mal
Nur keine Hektik! Geduld haben wir hier genug, wenn hdi davon grad nicht genug hat, kann ich dem sogar bisschen was ausleihen^^ ;)
Vom eher lockeren Ton braucht man sich auch nicht irritieren lassen, das ist in foren so üblich, zumindest das pauschale duzen hat sich wohl aus dem Englischen eingeschlichen...
=> Einfach nochmal einigermaßen vollständig das Problem schildern, evtl. auftretenden Fehler auflisten. Code am liebsten auch gleich komplett posten, damit solche Fragen wie von hdi bzgl "tree" und "k" nicht auftauchen.
 

kara

Mitglied
guten tag ich schreibe es nochmals hin und möchte sie höfflichst fragen ob dies so besser ist...
(hoffentlich ist es der richtige Knopf du meine Güte)



Java:
private boolean search (int elem, key t){
if ( t == null) return false;
if (t.data == elem)
return true;
if (t.data > elem) return search (elem t.links);
if(t.data < elem) return search (elem t.rechts);
}
 
Zuletzt bearbeitet:

kara

Mitglied
Nur keine Hektik! Geduld haben wir hier genug, wenn hdi davon grad nicht genug hat, kann ich dem sogar bisschen was ausleihen^^ ;)
Vom eher lockeren Ton braucht man sich auch nicht irritieren lassen, das ist in foren so üblich, zumindest das pauschale duzen hat sich wohl aus dem Englischen eingeschlichen...
=> Einfach nochmal einigermaßen vollständig das Problem schildern, evtl. auftretenden Fehler auflisten. Code am liebsten auch gleich komplett posten, damit solche Fragen wie von hdi bzgl "tree" und "k" nicht auftauchen.

lassen sie mir bitte zeit mich in das Forum einzuleben ich bin von der alten Schule noch
 

Ark

Top Contributor
@kara: Man sollte sich vielleicht aber auch um eine lesbare Schreibweise bemühen. Von Groß- und Kleinschreibung hörst du schließlich auch nicht zum ersten Mal, oder? ;) Und eine korrekte Verwendung von Satzzeichen sollte auch nicht zu viel verlangt sein.

@topic: Die Codefehler, die du machst, sind grundlegender. In dem Stadium sollte man noch nicht versuchen, komplexe Datenstrukturen zu implementieren. Fang mit etwas Einfacherem an und lerne so erst einmal richtig in Java zu schreiben.

Ark

EDIT: Welche ist deine Muttersprache?
 

hdi

Top Contributor
Geduld haben wir hier genug, wenn hdi davon grad nicht genug hat, kann ich dem sogar bisschen was ausleihen^^
Das wär nett. Aber keine Rückgabe-Garantie ;)

@kara:
Da du scheinbar wieder nur die search-Methode gepostet hast: Wir fragen uns, was die Variablen "tree" und "k" sind. Die werden nirgends definiert. Poste bitte den kompletten Code des Programms bzw. dieser Klasse, aus der der Code ist. Sonst können wir nicht (vollständig) sagen was da falsch ist.
 

kara

Mitglied
@kara: Man sollte sich vielleicht aber auch um eine lesbare Schreibweise bemühen. Von Groß- und Kleinschreibung hörst du schließlich auch nicht zum ersten Mal, oder? ;) Und eine korrekte Verwendung von Satzzeichen sollte auch nicht zu viel verlangt sein.

@topic: Die Codefehler, die du machst, sind grundlegender. In dem Stadium sollte man noch nicht versuchen, komplexe Datenstrukturen zu implementieren. Fang mit etwas Einfacherem an und lerne so erst einmal richtig in Java zu schreiben.

ja schon aber ich muss das loesen es ist so


Ark

EDIT: Welche ist deine Muttersprache?
ich spreche Schweizerdeutsch
 

0x7F800000

Top Contributor
guten tag ich schreibe es nochmals hin und möchte sie höfflichst fragen ob dies so besser ist...
okay okay okay, damit dürfte auch hdi's tagesbedarf an Höflichkeit gedeckt sein :D
Java:
private bollean search ( inte elem, key t){
if (t== null) return false;
if (t.data == elem)
return true;
if(t.data > elem) return search (elem t.links);
if(t.data< elem) teurn search (elem t.rechts)
}
hast du versucht, diesen code zu compilieren? Damit dürften sich die meisten syntaktischen fehler schnell beheben lassen.
1) "bollean" ist tippfehler, "boolean" gehört dahin
2) "inte" ist fehler, "int" heißt der datentyp
3) Falls "key" ein klassenname ist, sollte man es gegen "Key" tauschen, da Klassennamen nach konvention großgeschrieben werden
4) Systematisches Einrücken des codes steigert die lesbarkeit des codes enorm
5) "eurtn" sollte wohl "return" werden?
6) beim aufruf von methoden müssen argumente durch kommata getrennt werden
7) alle anweisungen werden mit semikolon abgeschlossen

=> das alles sagt der compiler, und zwar wesentlich schneller und genauer, als es irgendwelche Leute aus dem Forum je tun könnten.

Semantisch sieht der code eigentlich durchaus sinnvoll aus! Nur an der schreibweise muss man ein wenig feilen ;)

@hdi:
Aber keine Rückgabe-Garantie
passt schon! *viertel kilo geduld rüberwirf* :)
 
Zuletzt bearbeitet:

kara

Mitglied
Das wär nett. Aber keine Rückgabe-Garantie ;)

@kara:
Da du scheinbar wieder nur die search-Methode gepostet hast: Wir fragen uns, was die Variablen "tree" und "k" sind. Die werden nirgends definiert. Poste bitte den kompletten Code des Programms bzw. dieser Klasse, aus der der Code ist. Sonst können wir nicht (vollständig) sagen was da falsch ist.

ich sollte nur einige Methoden programmieren nicht ein ganzes Programm
 

kara

Mitglied
okay okay okay, damit dürfte auch hdi's tagesbedarf an Höflichkeit gedeckt sein :D

hast du versucht, diesen code zu compilieren? Damit dürften sich die meisten syntaktischen fehler schnell beheben lassen.
1) "bollean" ist tippfehler, "boolean" gehört dahin
2) "inte" ist fehler, "int" heißt der datentyp
3) Falls "key" ein klassenname ist, sollte man es gegen "Key" tauschen, da Klassennamen nach konvention großgeschrieben werden
4) Systematisches Einrücken des codes steigert die lesbarkeit des codes enorm
5) beim aufruf von methoden müssen argumente durch kommata getrennt werden

=> das alles sagt der compiler, und zwar wesentlich schneller und genauer, als es irgendwelche Leute aus dem Forum je tun könnten.

Semantisch sieht der code eigentlich durchaus sinnvoll aus! Nur an der schreibweise muss man ein wenig feilen ;)

@hdi:

passt schon! *viertel kilo geduld rüberwirf* :)
entschuldigen sie bitte ich muss mich erst daran gewöhnen
vielen lieben dank ich wollte nur wissen ob der Code stimmt und die anderen Code sind die alle falsch?
 

0x7F800000

Top Contributor
*bitte nochmal auf meinen letzten post schauen, da sind noch zwei fehler dazugekommen

Zu anderen methoden:
Code:
public void empty(){
root == null;
}
macht in jedem kontext absolut keinen sinn. == ist ein vergleich. Das ergebnis dieses vergleichs wird einfach verworfen. Die methode tut nichts und gibt nichts aus.
Code:
public boolean isEmpty(){
return root == null;
ob das funktioniert ist unklar, wie gesagt: wir sind keine hellseher, wir brauchen wenigstens den ganzen code, der damit direkt zusammenhängt, ob er von dir stammt oder vorgegeben wird, ist egal.
Code:
public key(int elem){
key = elem;
links = null;
rechts = null;
}
...schwer zu sagen? Falls es ein konstruktor ist, sollte man den namen wieder großschreiben, sonst ist das verwirrend. private variable wieder "key" zu benennen macht es noch verwirrender.

Code:
public boolean son(int elem)
{
return search(elem, root)
}
zumindest semikolon vergessen, ob das sinn macht: unklar...
 

Ark

Top Contributor
ich spreche Schweizerdeutsch
Okay, in meinen Augen sah das gerade etwas anders aus; nichts für ungut. ;) Du solltest dir allerdings noch ein paar Dinge zu Herzen nehmen:

1. Benutze den "Vorschau"-Button, bevor du einen Beitrag abschickst.
2. Achte auf die Tags, die du in deinen Beiträgen verwendest, und auf ihre korrekte Anordnung (beispielsweise hast du mich falsch zitiert). Auch hier hilft eine Vorschau.
3. Das hier ist ein Forum und kein Chat. Du kannst dir also genügend Zeit nehmen, deine Beiträge auf Richtigkeit und Lesbarkeit (auch für andere!) zu überprüfen.
4. Die meisten, die auf Fragestellungen antworten, sind sehr erfahren im Umgang mit Java und Informatik, kennen also auch die mathematischen Zusammenhänge. Insbesondere kann es vorkommen, dass man pingelig reagiert, und falls dich das zu sehr stört, kannst du dich ja daran erinnern, dass ein Computer noch viel pingeliger reagiert. ;)

Ark
 

kara

Mitglied
Okay, in meinen Augen sah das gerade etwas anders aus; nichts für ungut. ;) Du solltest dir allerdings noch ein paar Dinge zu Herzen nehmen:

1. Benutze den "Vorschau"-Button, bevor du einen Beitrag abschickst.
2. Achte auf die Tags, die du in deinen Beiträgen verwendest, und auf ihre korrekte Anordnung (beispielsweise hast du mich falsch zitiert). Auch hier hilft eine Vorschau.
3. Das hier ist ein Forum und kein Chat. Du kannst dir also genügend Zeit nehmen, deine Beiträge auf Richtigkeit und Lesbarkeit (auch für andere!) zu überprüfen.
4. Die meisten, die auf Fragestellungen antworten, sind sehr erfahren im Umgang mit Java und Informatik, kennen also auch die mathematischen Zusammenhänge. Insbesondere kann es vorkommen, dass man pingelig reagiert, und falls dich das zu sehr stört, kannst du dich ja daran erinnern, dass ein Computer noch viel pingeliger reagiert. ;)

Ark
Muss ich denn ein ganzes zusammenhängendes Programm schreiben?
gefragt sind bei mir nur einzelne Methoden...
 

kara

Mitglied
*bitte nochmal auf meinen letzten post schauen, da sind noch zwei fehler dazugekommen

Zu anderen methoden:
Code:
public void empty(){
root == null;
}
macht in jedem kontext absolut keinen sinn. == ist ein vergleich. Das ergebnis dieses vergleichs wird einfach verworfen. Die methode tut nichts und gibt nichts aus.
Code:
public boolean isEmpty(){
return root == null;
ob das funktioniert ist unklar, wie gesagt: wir sind keine hellseher, wir brauchen wenigstens den ganzen code, der damit direkt zusammenhängt, ob er von dir stammt oder vorgegeben wird, ist egal.
Code:
public key(int elem){
key = elem;
links = null;
rechts = null;
}
...schwer zu sagen? Falls es ein konstruktor ist, sollte man den namen wieder großschreiben, sonst ist das verwirrend. private variable wieder "key" zu benennen macht es noch verwirrender.

Code:
public boolean son(int elem)
{
return search(elem, root)
}
zumindest semikolon vergessen, ob das sinn macht: unklar...

empty:------------> gibt einen leeren Baum aus
key:----------------> liefert die Wurzel eines Baumes
isempty-----------> liefert true wenn der Baum leer ist sonst false
maketree-----> erzeugt einen Baum
degree----> liefert die Anzahl der Söhne eines Knotens
son---->liefert den n-ten Sohn eines Knotens

ich habe das leider vergessen aber ich habe den Beschrieb dazugehängt...
 

0x7F800000

Top Contributor
Muss ich denn ein ganzes zusammenhängendes Programm schreiben?
gefragt sind bei mir nur einzelne Methoden...

ja, aber in der aufgabenstellung (oder in der vorlesung oder wo auch immer) war ja wohl der rest des codes vorgegeben? Und wenn das der Fall ist, sollte der prof bzw. der Verantwortliche den code teilweise irgendwo hochladen, damit ihr damit weiterarbeiten könnt.

Den kompletten code brauchst du sowieso.
Zum einen brauchst du das, um es kompilieren zu können (auf rechtschreibfehler wird dich hier in zukunft keiner hinweisen, das ist Arbeit des compilers).
Zum anderen brauchst du das, um damit herumzuprobieren, wie sich das programm verhält. Suche in einem Baum wirst du vielleicht auch im Kopf einigermaßen ausformulieren können, aber bei etwas komplexeren programmen geht da im Kopf alleine nichts mehr.
Zu guter letzt brauchst du irgendwas funktionierendes. Wenn du die ganze zeit nur nicht funktionale textdateien erstellst, wo bleibt dann das erfolgserlebnis, wenn du das ergebnis nie zur gesicht bekommst?

empty:------------> gibt einen leeren Baum aus
key:----------------> liefert die Wurzel eines Baumes
isempty-----------> liefert true wenn der Baum leer ist sonst false
maketree-----> erzeugt einen Baum
degree----> liefert die Anzahl der Söhne eines Knotens
son---->liefert den n-ten Sohn eines Knotens
das gehört als kommentar ins code, diesen zettel kann man ja nicht dauernd vor augen haben, und verliert den eh irgendwann...
 

kara

Mitglied
ja, aber in der aufgabenstellung (oder in der vorlesung oder wo auch immer) war ja wohl der rest des codes vorgegeben? Und wenn das der Fall ist, sollte der prof bzw. der Verantwortliche den code teilweise irgendwo hochladen, damit ihr damit weiterarbeiten könnt.

Den kompletten code brauchst du sowieso.
Zum einen brauchst du das, um es kompilieren zu können (auf rechtschreibfehler wird dich hier in zukunft keiner hinweisen, das ist Arbeit des compilers).
Zum anderen brauchst du das, um damit herumzuprobieren, wie sich das programm verhält. Suche in einem Baum wirst du vielleicht auch im Kopf einigermaßen ausformulieren können, aber bei etwas komplexeren programmen geht da im Kopf alleine nichts mehr.
Zu guter letzt brauchst du irgendwas funktionierendes. Wenn du die ganze zeit nur nicht funktionale textdateien erstellst, wo bleibt dann das erfolgserlebnis, wenn du das ergebnis nie zur gesicht bekommst?


das gehört als kommentar ins code, diesen zettel kann man ja nicht dauernd vor augen haben, und verliert den eh irgendwann...

leider nicht die Aufgabenstellung geht von einer gegeben Datenstruktur aus siehe
Anhang und diesen sollen wir nach Aufgabe ausprogrammieren die gehen
ganz anders vor als auf einer öffentlichen Schule
 

Anhänge

  • 3.29.jpg
    3.29.jpg
    96,6 KB · Aufrufe: 33

0x7F800000

Top Contributor
leider nicht die Aufgabenstellung geht von einer gegeben Datenstruktur
ja, dann schreib die eben vollständig, mit so halben sachen die frei in der luft rumschweben kann man ja nicht rumhantieren, das führt doch zu nix...

Außerdem steht doch auf dem ersten verlinkten Zettel, in der Aufgabe b), dass du sowieso die gesammte Klasse implementieren solltest.
Anhang und diesen sollen wir nach Aufgabe ausprogrammieren die gehen
ganz anders vor als auf einer öffentlichen Schule
wer sind denn "die" falls kein betriebsgeheimnis?
 

kara

Mitglied
guten tag,

da ich keine class Binärbaum vorgeben habe würde ich das so implementieren

Java:
public calss node
{
public son;
public key;
 
public node{
key = elem;
son = null;
 
/*gibt einen leeren Baum aus*/
public empty(){
node == null;
}
 
public isEmpty(){
if node == null;
return true
else
return false;
}
 
/*erstellt einen Baum */
public maketree( key x, son r, son l){
key = x;
r = rechts;
l = links;
}
 
 
/*gibt das Wurzelelement zurück*/
 
public key(int elem){
key = elem;
links = null;
rechts = null;
}
 
Zuletzt bearbeitet:

0x7F800000

Top Contributor
da ich keine class Binärbaum vorgeben habe würde ich das so implementieren
Dann implementiere das so, und schau doch einfach an was der compiler dazu sagt.
Programmieren ist vor allem Interaktion mit dem Rechner.
Man gibt dem Rechner was, der Rechner spuckt fehler, man korrigiert diese, gibt den code wieder dem rechner, und das wiederholt man solange, bis keine Fehler mehr da sind, oder bis man da nicht weiterkommt. Falls man nicht weiterkommt, kann man lesen, googlen, oder im Forum nachfragen (am besten in dieser Reihenfolge).
Wenn man fragt, postet man den code und die Liste der Fehler, mit den man nicht klarkommt. Wenn du bei jedem Tippfehler den code ins forum postest, und halben tag auf reaktion wartest, wirst du mit dem Programm nicht mal in einem Jahr fertig, bzw. einfach gar nicht fertig, so läuft's eben nicht.
=> Wirf den Compiler an!
 

kara

Mitglied
Wäre jemand so gut und könnte sich das Programm ansehen ob der Algorithmus
richtig implementiert ist für Baeume mit:

maketree---------> erzeugt einen Baum
empty--------------->liefert einen leeren Baum
key--------------->liefert das Wurzelelement
degree-------->liefert die Anzahl der Söhne eines Knotens
son------------>liefert den n-ten Sohn eines Knotens
isempty-------->prüft ob der Baum leer ist oder nicht true wenn leer sonst
false
 

Anhänge

  • btree.pdf
    33,9 KB · Aufrufe: 7
Zuletzt bearbeitet:

0x7F800000

Top Contributor
Java:
public class btree {
	/**
	 * @param args		//wo kommt das hergekrabbelt? hat hier nichts zu suchen 
	 */
	class node {
		node left;
		node right;
		Object key;		//für's erste ok, eigentlich macht man sowas generisch
		node data;		//sieht sinnfrei aus
	}

	public int data; //sieht verdächtig aus. Welche bedeutung soll die Variable haben?

	public static void maketree(node l, node r, node t) {
		//diese gesammte methode tut nichts, 
		//außer drei temporäre variablen zu erzeugen
		//die unmittelbar danach vom GC in den Müll geworfen werden
		btree.node key = t;		 
		btree.node left = l;
		btree.node right = r;
	}

	/* gibt den Wurzelknoten zurück */
	private Object key() {
		//wieso private?
		//offenbar kann diese methode nichts sinnvolles tun, außer StackOverflowError zu erzeugen
		// -> nicht abbrechende rekursion...
		return key();
	}

	/* liefert einen leeren Baum */ //what?
	public boolean empty(node key) {
		//was soll das? was soll die gesammte methode? 
		// die prüft lediglich, ob "key" null ist, was soll das für einen sinn haben?
		return key == null; 
	}

	/* gibt true aus falls nicht empty sonst false */ //zumindest im kommentar ist knick in der logik
	public boolean isEmpty(node key) {
		//die methode tut exakt dasselbe wie "empty"
		//und ist ebenso sinnfrei
		if (key == null)
			return true;
		else
			return false;
	}

	/* liefert die Anzal der Söhne eines Knotens, Grad eines Knotens */
	//wie soll die methode irgendwas liefern, wenn da "void" als rückgabetyp steht?
	public static void degree(int anzahl, node lson, node rson) {
		int anzahl1 = 0;	//nichts aussagende variablennamen
		int anzahl2 = 0;	//übel...
		if (lson == null)
			anzahl1 = 0;
		else
			anzahl1++;
		if (rson == null)
			anzahl2 = 0;
		else
			anzahl2++;
		//mit so einer ähnlichen nummer könnte man bei C/C++ durchkommen, 
		//aber so funzt's jedenfalls nicht. return benutzen.
		anzahl = anzahl1 + anzahl2; 
	}

	/* liefert den n-ten Sohn eines Knotens */
	public boolean search(int elem, node t) {
		if (t == null)
			return false;
		if (data == elem)
			return true;
		if (data > elem)
			return search(elem, t.right);
		if (data < elem)
			;
		return search(elem, t.left);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// wenn schon so eine methode zu testzwecken in die klasse mit reinnehmen, dann soll da zumindest
		//irgendwas drinstehen
		//hättest du versucht, deine eigene Klasse zu verwenden, wäre dir aufgefallen, 
		//dass sie bisher wenig sinnvolles tut...
	}
}
1) pdf nicht unbedingt nötig...
2) Es kompiliert schonmal, das ist gut!
3) Es tut bisher praktisch nichts sinnvolles, das ist eher ernüchternd ???:L

-> mach dir klar, was der code tun soll
-> teste selbst an kleinen beispielen in der main, ob er das wirklich tut
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben