Wie fügt man Objekte in binäre Bäume ein(Java)?

Binärer Baum.1 - (Computer, Programm, programmieren) Binärer Baum.2 - (Computer, Programm, programmieren) Binärer Baum.3 - (Computer, Programm, programmieren) Binärer Baum.4 - (Computer, Programm, programmieren)

1 Antwort

Es ist unheimlich lästig, sich erst durch den Binärbaumcode wühlen zu müssen.

Das Ding ist dokumentiert, warum nimmst also nicht einfach die Javadoc dafür?

Ach danke, aber das kann ich leider jetzt nicht mehr ändern, aber zum nächsten Mal mache ich das bestimmt :)

0

Java Serialisierung und Aufrufen von Dateien?

Hey Leute, ich habe einige Fragen zum Speichern von Dateien:

ich habe eine Klasse namens Struktur, die gespeichert werden soll. Code:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
public class Struktur implements Serializable { 
private static final long serialVersionUID = 1L; 
ArrayList<Ebene> list; 
public Struktur(String name, int wert) { 
Ebene e = new Ebene(name, wert); 
list = new ArrayList<>(); list.add(e); 
} 
public Struktur() 
{ list = new ArrayList<Ebene>();
 } 
public void add(String name, int wert) { 
Ebene e = new Ebene(name, wert); list.add(e);
 }


@SuppressWarnings("unchecked")
public void print()
{
    Collections.sort(list);
    for(int i = 0; i&lt;list.size(); i++)
    {   
        System.out.println(list.get(i).getName()+ " "+ list.get(i).getWert());
        
    }
}

public void speichern(String name, int wert) throws IOException
{
    FileOutputStream fos;
    fos = new FileOutputStream("liste.ser");    
    add(name, wert);        
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(list);      
    oos.close();
}
public void lesen() throws IOException, ClassNotFoundException
{
    print();
    FileInputStream fis = new FileInputStream("liste.ser");
    ObjectInputStream ois = new ObjectInputStream(fis); 
    ois.close();
}

}


Dies funktioniert auch alles, jedoch kann ich die Daten erst lesen, wenn ich in der main()-Methode die Methode speichern() ausgeführt habe.

public class Ausführen {
	public static void main(String args[]) throws IOException, ClassNotFoundException  
	{
      Struktur s = new Struktur();
		s.speichern("Thomas", 2341);
		s.speichern("Sigfried", 2345);
		s.speichern("Bernd", 123421);
		s.lesen();
}


Wenn ich jedoch diese Methoden, weg lasse und nur lesen() aufrufe, wird mir nichts mehr ausgegeben.

Ich denke es liegt daran, dass ich die readObject()-Methode in lesen() nicht rein geschrieben habe und beim Ausführen immer der Konstruktor eine neue Liste erzeugt und diese dann ausgegeben wird und nicht die Daten, die eigentlich gespeichert wurden.

Kann mir jemand helfen und sagen, wie ich die Methode so ändern muss bzw. wo ich die Methode lesen() schreiben soll, damit ich die Datei auch auslesen kann?

...zur Frage

Methode einer anderen Klasse ausführen

Hey leute,

Ich arbeite an einem java projekt und hänge im endspurt fest -.- Ich habe in meinem Programm 3 Klassen,

1. public class foyer {

public static void main (String[] args) {

} }

das ist quasi eine begrüßung, die einen dann zwischen den zwei weiteren klassen auswählen lassen soll.

2.

public class BMI {

   public void BMI ( String args[] ) {

} }

diese Klasse ist die eine, die man über die Klasse foyer aufrufen können soll

3.

public class TR {

public void TR ( ) {

} }

die ist die andere Klasse und ihre methode, die über foyer aufgerufen werden soll

der code in der Klasse foyer sieht so aus:

import java.util.Scanner; public class foyer {

public static void main (String[] args) {
    int auswahl = 0;
    BMI bmirechner = new BMI();
    TR taschenrechner  = new TR();
    Scanner scan = new Scanner(System.in);

    System.out.println("Herzlich Wilkommen in meinem ersten Java Programm.");
    System.out.println("");
    System.out.println("Wenn Sie den BMI-Rechner verwenden wollen, geben sie eine 1 ein.");
    System.out.println("Wenn Sie den Taschenrechner verwenden wollen, geben sie eine 2 ein.");

    String input = scan.nextLine();
    auswahl = Integer.valueOf( input ).intValue();

    if("1".equals( auswahl ) ) {

        ????
    }

    if("2".equals( auswahl ) ) {

        ????   

    }

}

}

an den Stellen mit den Fragezeichen sollen die Befehle zum Wechseln auf die jeweilige Klasse stehen.

Kann mir da vlt. jemand helfen?

Danke, Gruß PooBucket

...zur Frage

Beim Compilen mit javac fehler bei public class?

Naja Eigentlich sollte das richtig sein oder?

Hier ist der ganze code :

public class Hallowelt {

public static void main (String arg[]) {

System.out.println("Hallo Welt!");

}

}

...zur Frage

Wie sieht die Punktnotation in Java aus oder wie kann ich auf auf andere Klassen zugreifen?

Wie kann ich in der Klasse Telefon die Methoden aus der Klasse Telefonbuch verwenden ? Wenn ich es mit Punktnotation versuche wie z.B.

public void eintrag_hinzufuegen(String name)
{
    Telefonbuch.hinzufuegen(name);
}

, kommt die Fehlermeldung : non static method cannot be referenced from a static context

1)

import java.util.ArrayList;
public class Telefon
{
protected ArrayList <Telefonbuch> telefonbuch;
protected boolean eingeschaltet;
        
        public Telefon()
    {
        // initialise instance variables
        telefonbuch = new ArrayList <Telefonbuch>();
    }
    
    public void anrufen (String name)
    {
    }
    
    public void einschalten()
    {
        eingeschaltet = true;
    }
    
    public void telefonbuch_uebersicht()
    {
        
    }
    
    public void eintrag_hinzufuegen(String name)
    {
    }
    
    public void eintrag_entfernen(String name)
    {
    }
    
    public boolean eintrag_suchen(String name)
    {
    }
}

2)

import java.util.Arrays;

/**
 * Write a description of class Telefonbuch here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Telefonbuch
{
    // instance variables - replace the example below with your own
    private int anzahl_eintrag;
    private int kapazitaet;
    private String[] name_liste;
    protected boolean gefunden;

    /**
     * Constructor for objects of class Telefonbuch
     */
    public Telefonbuch()
    {
        // initialise instance variables
        String [] name_liste = new String[kapazitaet];
        gefunden = false;
    }
    
    public void set_kapazitaet(int x)
    {
        kapazitaet = x;
    }
    
    public void telefonbuch_uebersicht()
    {
        for(int i=0; i < name_liste.length; i++)
        {
        System.out.println(name_liste[i]);
        }
    }
    
    public void hinzufuegen(String name)
    {
        
    }
    
    public void entfernen(String name)
    {
    }
    
    public boolean suchen(String name)
    {
        for(int i=0; i < name_liste.length; i++)
        {
         if(name_liste[i].equals(name))
         {
         gefunden = true;
         }
         else
         {
         //Abbruch
         }
        }
        return gefunden;
    }
}

...zur Frage

Wie lerne ich Programmier-Basics?

Ich würde gerne mal ausprobieren zu programmieren, aber da es so viele verschiedene Sprachen gibt, bin ich etwas überfordert und weiß nicht direkt wo ich anfangen soll, vorallem weil ich zuerst noch die Basics lernen sollte. Wie kann ich das am besten machen? Oder soll ich gleich mit einer Sprache wie z.B Java beginnen? Gibt es dazu gute Youtube Kanäle oder Internet Seiten? Danke schonmal

...zur Frage

Was möchtest Du wissen?