Veröffentlicht 16. April 200916 j Aufgabe class arbtree{ arbtree links; abtree rechts; int key; arbtree (int key); this.links = null; this.rechts = null; this.inhalt = key; public boolean empty(){ return key == null; } public static void key1(int key){ this.key = key; } public knoten getson(int i) { return sohn[i]; } public static void degree (int sonNodes(){ int sonl = 0; sumr = 0; if(left !=null) suml = left.sumnodes(); if (right !=null) sumr = right.sum.nodes(); return suml + sumr; } public static void maketree (arbtree l, keyx, arbtree r) { left = l; key = x; right = r; } Aufgabe c) public boolean count (int elem, int anz){ node k = root; anz = 0; do { if (k.date == elem) return true; anz = anz + 1; if(k.data > elem) k = k.links; if(k.data < elem) k = k.rechts; } while (k != null){ return false; } wo haben sich Fehler eingeschlichen kann ich dies so programmieren? [/code]
16. April 200916 j was ist alles falsch Wie gesagt, so ziemlich alles. und wie soll ich es verbessern?Ein erster Schritt in die richtige Richtung wäre, das zu tun, was in der Aufgabenstellung steht.
16. April 200916 j soll ich diese Operationen als Liste implementieren also den Baum als Liste?Statt die Aufgabenstellung als über 2 Megabyte großes JPG hier reinzustellen, hättest du sie vielleicht besser gelesen. Ich habe nämlich den Eindruck, das ist nicht passiert. Schreib doch mal die einzelnen Anweisungen der Aufgabenstellung raus, und dazu, ob du meinst, sie jeweils umgesetzt zu haben.
16. April 200916 j Naja, so wies da steht Ein Anfang wäre: import java.util.List; Dann würde ich noch ClassNames Konventionsgemäß Groß beginnen lassen: public class Arbtree { Und seine Gewünschte Liste sons hinzufügen: List<Arbtree> sons; ... Ok Klotzkopp macht Bearbeitet 16. April 200916 j von DominikJ Sorry ... Klotzkopp
16. April 200916 j also ich meine empty und maketree sind richtig umgesetzt mit key da habe ich glaube ich ein Problem und mit degree und son auch ich nehme an ich muss das mit einer liste implementieren weil man eine generische Java Klasse list1<ElemType> erstellen muss und ich denke count muss ich als liste implementieren mit einer nicht rekursiven Breitensuche
16. April 200916 j also ich meine empty und maketree sind richtig umgesetztDie Aufgabe bezieht sich hier auf den "Kurstext", aber ich gehe nicht davon aus, dass empty prüfen soll, ob der Key leer ist. maketree liest sich, wenn man mal über die Syntaxfehler hinwegsieht, auch nicht besonder sinnvoll. ich nehme an ich muss das mit einer liste implementieren weil man eine generische Java Klasse list1<ElemType> erstellen mussDie musst du nicht erstellen, sondern benutzen. Steht angeblich auch im Kurstext. und ich denke count muss ich als liste implementieren mit einer nicht rekursiven BreitensucheWas meinst du mit "als Liste"? ja und dann programiere ich empty, maketree, key, degree, isempty als liste?Kann es sein, dass du überhaupt keine Ahnung hast, was du da machen sollst?
16. April 200916 j public boolean empty () { return first = = null; versuch der empty funktion:confused:
16. April 200916 j public boolean empty () { return first = = null; versuch der empty funktion:confused: Und was ist first? Welchen Zweck hatte denn empty in Abbildung 3.29 des Kurstextes? Liegt dir dieser Kurstext überhaupt vor? ja so ungefähr habe ich keine Ahnung was sie meinenDann solltest du zuerst dieses grundlegende Problem lösen. Ohne Ahnung wirst du diese Aufgabe nicht lösen können.
16. April 200916 j ich sende jetzt die Abbildung 3.29 hier ist empty null leer public boolean empty(){ return == null;
16. April 200916 j ich sende jetzt die Abbildung 3.29Danke für einen weiteren riesigen Anhang. hier ist empty null leerNaja, so ähnlich. Verstehst du, was empty tun soll? public boolean empty(){ return == null;empty soll sicher nicht einen boolean zurückgeben.
16. April 200916 j somit ist die funktion maketree aber richtig Deine maketree-Implementierung benutzt left und right, die laut Aufgabestellung gar nicht mehr drin sein sollen!
16. April 200916 j Das ist so ziemlich komplett falsch. muss ich bei key einen zeiger auf die wurzel programmieren? und bei son den rechten und linken sohn ausgeben?
16. April 200916 j muss ich bei key einen zeiger auf die wurzel programmieren?Nein. und bei son den rechten und linken sohn ausgeben?Es gibt keinen "rechten" und "linken" Sohn. Das ist kein Binärbaum. Raten wird dich nicht weiterbringen.
17. April 200916 j Nein. Es gibt keinen "rechten" und "linken" Sohn. Das ist kein Binärbaum. Raten wird dich nicht weiterbringen. eine Liste Implementieren welche die Söhne ausgibt diese muss ich noch machen und für key würde ich implementieren public int getkey(){ return key; } schlüssel werden zurückgegeben ich rate jetzt nicht:rolleyes:
17. April 200916 j eine Liste Implementieren welche die Söhne ausgibt diese muss ich noch machenEine Liste ist eine Datenstruktur. Datenstrukturen geben nichts aus. public int getkey(){ return key; }Die Methode soll key heißen. Und wenn du nicht geraten hast, müsstest du mir ja erklären können, wie du hier auf int kommst.
17. April 200916 j eine Liste Implementieren welche die Söhne ausgibt diese muss ich noch machen und für key würde ich implementieren public getkey(){ return key; } schlüssel werden zurückgegeben ich rate jetzt nicht:rolleyes: ich denke so wäre es besser denn es muss ein schlüssel zurückgegeben werden und so wäre public boolean isempty (int key){ if int key == null; return true else return false } public getson (int i){ { return son } get function liefert den sohn zurück eine Möglichkeit von isempty :upps Bearbeitet 17. April 200916 j von lisa1
17. April 200916 j ich denke so wäre es besser denn es muss ein schlüssel zurückgegeben werdenWenn du den Typ weglässt, ist das kein gültiger Java-Code mehr. Deine "neue" isempty-Implementierung ist auch Blödsinn. Wir können das hier noch tagelang weiterspielen, aber das bringt dir nichts. Die Wahrscheinlichkeit, dass du mit deiner jetzigen Vorgehensweise auf eine richtige Lösung kommst, ist praktisch gleich Null. Meiner Meinung nach hast du momentan nicht mal ansatzweise die nötigen Kenntnisse, diese Aufgabe zu lösen. Mit ein paar Tipps ist dir nicht geholfen, du hast massive Lücken bei den Grundlagen. Ich weiß nicht wieso, und ich will das hier auch nicht erörtern. Ein Webforum wie dieses ist aber nicht geeignet, die Ausbildung nachzuholen, die dieser Aufgabe vorausgegangen sein muss. Bestenfalls (oder schlimmstenfalls, kommt auf den Standpunkt an) kommst du so an eine Lösung für diese konkrete Aufgabe, was dir zwar für den Moment hilft, aber nicht auf lange Sicht, weil damit deine Wissenslücken nicht behoben sind. Bei der nächsten Aufgabe, oder spätestens bei der Prüfung, hast du dann wieder dasselbe Problem. Die Frage ist also: Was willst du? Eine schnelle Lösung für diese Aufgabe, oder deine Wissenslücken schließen?
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.