Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Knoten{
- public String name;
- boolean markiert = false;
- int x, y;
- int entfernung = 0;
- Kante [] kanten = new Kante[10];
- int anzahlKanten = 0;
- boolean pfad = false;
- boolean punktpfad = false;
- public Knoten nachfolger, vorgaengerImPfad;
- public Knoten( String name, int x, int y){
- this.name = name;
- this.x = x;
- this.y = y;
- println( "Knoten " + name + " erzeugt!" );
- }
- public float berechneMausDistanz(int x1, int y1){
- int difx = x1 - x;
- int dify = y1 - y;
- float hyp = sqrt(difx * difx + dify * dify);
- return hyp;
- }
- public void zeichneDich(){
- fill(255,255,255);
- if( pfad == true){
- fill(0,255,90);
- }
- if( punktpfad == true ){
- fill(255,0,0);
- }
- ellipse(x,y,35,35);
- stroke(0,0,0);
- strokeWeight(2);
- font = loadFont("AbadiMT-CondensedExtraBold-14.vlw");
- textFont(font);
- fill(0,0,0);
- text( name , x, y);
- }
- public void markierePfad(){
- pfad = true;
- }
- public void markierePunkt(){
- punktpfad = true;
- }
- public void fuegeKanteHinzu( Knoten nachbar, int entfernung){
- kanten[anzahlKanten] = new Kante ( nachbar, entfernung) ;
- anzahlKanten++;
- }
- public void markiereKnoten(){
- markiert = true;
- }
- public void fuegeKnotenEin( Knoten neuerKnoten ){
- if ( nachfolger == null ){
- nachfolger = neuerKnoten;
- System.out.println( "Knoten mit Entfernung " + neuerKnoten.entfernung + " eingefuegt.");
- }
- else {
- int eneu = neuerKnoten.gibEntfernungZurueck();
- int enachfolger = nachfolger.gibEntfernungZurueck();
- if ( enachfolger > eneu ){
- neuerKnoten.setzeNachfolger( nachfolger );
- nachfolger = neuerKnoten;
- System.out.println( "Knoten mit Entfernung " + neuerKnoten.entfernung + " eingefuegt.");
- }
- else {
- nachfolger.fuegeKnotenEin( neuerKnoten );
- }
- }
- }
- public void gibKnotenAus(){
- System.out.println( "Knoten: " + name + " Entfernung bis hierhin: " + entfernung + " Vorgaenger: " + vorgaengerImPfad.name );
- if ( nachfolger != null ){
- nachfolger.gibKnotenAus();
- }
- }
- public void gibPfadAus(){
- if ( vorgaengerImPfad != null ){
- vorgaengerImPfad.gibPfadAus();
- vorgaengerImPfad.markierePfad();
- System.out.println( "Knoten: " + name + " Entfernung bis hierhin: " + entfernung + " Vorgaenger: " + vorgaengerImPfad.name );
- }
- else {
- System.out.println( "Knoten: " + name + " Entfernung bis hierhin: " + entfernung );
- }
- }
- public int gibEntfernungZurueck(){
- return entfernung;
- }
- public Knoten gibNachfolgerZurueck(){
- return nachfolger;
- }
- public void setzeNachfolger( Knoten nachfolgerInDerWarteschlange ){
- this.nachfolger = nachfolger;
- }
- public boolean istMarkiert(){
- return markiert;
- }
- public void entferneKnoten( Knoten knoten ){
- if ( nachfolger == null ){
- return ;
- }
- else{
- if ( nachfolger == knoten ){
- System.out.println( "Knoten mit Entfernung " + knoten.entfernung + " entfernt.");
- nachfolger = nachfolger.gibNachfolgerZurueck();
- }
- else{
- nachfolger.entferneKnoten( knoten );
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment