ubgrade 13.2
							parent
							
								
									9774c8a91c
								
							
						
					
					
						commit
						bdb5d7334c
					
				|  | @ -17,21 +17,49 @@ public class Binärbaum | ||||||
|  //Konstruktoren für ein Blatt
 |  //Konstruktoren für ein Blatt
 | ||||||
|   |   | ||||||
|  //Konstruktor für inneren Knoten
 |  //Konstruktor für inneren Knoten
 | ||||||
| 
 |  Node Final; | ||||||
|  public void einfügen(int [] Anzahl){ |  public void einfügen(int [] Anzahl){ | ||||||
|      //alle Nodes werden abgespeichert
 |      //alle Nodes werden abgespeichert
 | ||||||
|    ArrayList<Node> l = new ArrayList<Node>(); |       | ||||||
|  |    ArrayList<Node> m = new ArrayList<Node>(); | ||||||
|     |     | ||||||
|   for(int i =0 ; i<Anzahl.length; i++){ |   for(int i =0 ; i<Anzahl.length; i++){ | ||||||
|     if(Anzahl[i] >= 1){ |     if(Anzahl[i] >= 1){ | ||||||
|         //Node wird angelegt
 |         //Node wird angelegt
 | ||||||
|     Node n = new Node((char)(i + 65), Anzahl[i]) ; |     Node n = new Node((char)(i + 65), Anzahl[i]) ; | ||||||
|      |      | ||||||
|     l.add(n); |     m.add(n); | ||||||
|     } |     } | ||||||
|     }  |     }  | ||||||
|     //Sortieren von den Werten mit Selection Sort
 |     //Sortieren von den Werten 
 | ||||||
|  |     | ||||||
|  |    while(m.size() > 1){ | ||||||
|  |     //Minimum finden
 | ||||||
|  |     int Minimum = Minimum(m); | ||||||
|  |     //ermittelt das Minimum für die Festlegung des rechten Knotens
 | ||||||
|  |     Node n1 = m.get(Minimum); | ||||||
|  |     //entfernt das aktuelle Minimum
 | ||||||
|  |     m.remove(Minimum); | ||||||
|  |      | ||||||
|  |     int Minimum2 = Minimum(m); | ||||||
|  |     Node n2 = m.get(Minimum2); | ||||||
|  |     m.remove(Minimum2); | ||||||
|  |     Node neu = new Node(' ', n1.Anzahl + n2.Anzahl); | ||||||
|  |     neu.links = n1; | ||||||
|  |     neu.rechts= n2; | ||||||
|  |     m.add(neu);     | ||||||
|  |         } | ||||||
|  |     Final = m.get(0); | ||||||
|  |     } | ||||||
|  | public void ausgeben(Node n, String i){ | ||||||
|  | if(n.links != null){ | ||||||
|  | ausgeben(n.links, i + "0"); | ||||||
|  | ausgeben(n.rechts, i + "1"); | ||||||
|  | }else{ | ||||||
|  |     System.out.println(n.wert + " : " + i+ " Anzahl:" + n.Anzahl); | ||||||
| } | } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| public int Minimum(ArrayList<Node> l){ | public int Minimum(ArrayList<Node> l){ | ||||||
| int minindex = 0; | int minindex = 0; | ||||||
| for(int i = 0; i<l.size(); i++){ | for(int i = 0; i<l.size(); i++){ | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ public class Test | ||||||
| { | { | ||||||
|      |      | ||||||
|     public static void main(){ |     public static void main(){ | ||||||
|     List text = new List(); |     Binärbaum Ausdrucken = new Binärbaum (); | ||||||
|     //legt String mit Inhalt Abrakadabra an
 |     //legt String mit Inhalt Abrakadabra an
 | ||||||
|     String Text = "ABRAKADABRA"; |     String Text = "ABRAKADABRA"; | ||||||
|     //ruft tählen Methode aus List auf
 |     //ruft tählen Methode aus List auf
 | ||||||
|  | @ -18,7 +18,7 @@ public class Test | ||||||
|     Binärbaum b = new Binärbaum(); |     Binärbaum b = new Binärbaum(); | ||||||
|     //fügt die vorhandenen Buchstaben in den binärbaum ein
 |     //fügt die vorhandenen Buchstaben in den binärbaum ein
 | ||||||
|     b.einfügen(Anzahl); |     b.einfügen(Anzahl); | ||||||
|     System.out.println(b); |     b.ausgeben(b.Final, ""); | ||||||
|      |      | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue