Wie kann ich ein LinkedList verbinden ?

Coder55

Mitglied
Hi Leute ,

ich brauche wieder mal eure hilfe.

Undzwar muss ich ein Projekt machen wo ich meine Abfahrtstation und die Zielstation in einem Textfield eingeben kann. Als Endprodukt soll denn in einem Textarea die Abfahrtstation + auch die zwischen Station anzeigen + Zielstation + die Reisedauer angezeigt werden.

So meine frage ist jetzt, kann man in einem Linkedlist durch eingabe in einem Textfield die bestimmten station suchen und in einem Textarea anzeigen lassen. Und außerdem will ich auch noch die Zeit berechnen lassen. z.B. will gebe ich in dem Textfield "Malostranska" ein und will nach "Florence". In dem Textarea soll er mir anzeigen welche die kürzeste route ist und wie lange die Reise dauren soll.

Hier meine LinkedList

Code:
package linklist;

import java.util.*;


public class SLinkedList {

    protected StringNode head;
    public  SLinkedList() {
        head = new StringNode();
    }

    public static void main(String[] args) {
        // set up a linked list of 4 integers
	  SLinkedList greenline = new SLinkedList();
          greenline.addFirst("Dejvicka",500);
          greenline.addMid("Hradcanska",500,"Dejvicka");
          greenline.addMid("Malostranska",500,"Hradcanska");
          greenline.addMid("Staromestska",500,"Malostranska");
          greenline.addMid("Mustek",500,"Staromestska");
          greenline.addMid("Muzeum",500,"Mustek");
          greenline.addMid("Namesti",500,"Muzeum");
          greenline.addMid("Jirihoz Podebrad",500,"Namesti");
          greenline.addMid("Flora",500,"Jirihoz Podebrad");
          greenline.addMid("Zelivskeho",500,"Flora");
          greenline.addMid("Stransnicka",500,"Zelivskeho");
          greenline.addMid("Skalka",500,"Stransnicka");
          greenline.addLast("Depo Hostivar");
          printList(greenline);


          SLinkedList yellowline = new SLinkedList();
          yellowline.addFirst("Zlicin",500);
          yellowline.addMid("Stodulky",500,"Zlicin");
          yellowline.addMid("Luka",500,"Stodulky");
          yellowline.addMid("Luziny",500,"Luka");
          yellowline.addMid("Hurka",500,"Luziny");
          yellowline.addMid("Nove Butovice",500,"Hurka");
          yellowline.addMid("Jinonice",500,"Nove Butovice");
          yellowline.addMid("Radlicka",500,"Jinonice");
          yellowline.addMid("Smichovske Nadrazi",500,"Radlicka");
          yellowline.addMid("Andel",500,"Smichovske Nadrazi");
          yellowline.addMid("Karlovo Namesti",500,"Andel");
          yellowline.addMid("Nardonitrada",500,"Karlovo Namesti");
          yellowline.addMid("Mustek",500,"Nardonitrada");
          yellowline.addMid("NR",500,"Mustek");
          yellowline.addMid("Florence",500,"NR");
          yellowline.addMid("Krizikova",500,"Florence");
          yellowline.addMid("Invalidovna",500,"Krizikova");
          yellowline.addMid("Palmovka",500,"Invalidovna");
          yellowline.addMid("CM",500,"Palmovka");
          yellowline.addMid("Vysocanska",500,"CM");
          yellowline.addMid("Kolbenova",500,"Vysocanska");
          yellowline.addMid("Hloubetin",500,"Kolbenova");
          yellowline.addMid("Rajska Zahrada",500,"Hloubetin");
          yellowline.addLast("Cerry Most");
          printList(yellowline);

          SLinkedList redline = new SLinkedList();
          redline.addFirst("Ladvi",500);
          redline.addMid("Kobylisy",500,"Ladvi");
          redline.addMid("Nadrazi Holesovic",500,"Kobylisy");
          redline.addMid("Vltavska",500,"Nadrazi Holesovic");
          redline.addMid("Florence",500,"Vltavska");
          redline.addMid("Hlavni",500,"Florence");
          redline.addMid("Muzeum",500,"Hlavni");
          redline.addMid("I.P.Pavlova",500,"Muzeum");
          redline.addMid("Vysehrad",500,"I.P.Pavlova");
          redline.addMid("Prazskeho Povstani",500,"Vysehrad");
          redline.addMid("Pankrac",500,"Prazskeho Povstani");
          redline.addMid("Budejovicka",500,"Pankrac");
          redline.addMid("Kacerov",500,"Budejovicka");
          redline.addMid("Roztyly",500,"Kacerov");
          redline.addMid("Chodov",500,"Roztyly");
          redline.addMid("Opatov",500,"Chodov");
          redline.addLast("Haje");
          printList(redline);


    }

    //add a new node to the head of the list
    private void addFirst(String element,int distance) {
        // make variable head point to new node
        head = new StringNode(element,distance,head);
    }

    private void addLast(String element) {
        StringNode tail;
        tail = head;
        while (tail.getNext() != null) {
            tail = tail.getNext();
            }
        //insert new node at end of list
        tail.setNext( new StringNode(element));
    }

    //add a new node after position of curnode
    private void addMid(String element,int distance ,String entryafter) {
        StringNode curnode;
        curnode = head;
        //go to last node and remember previous node at all times
        while (curnode != null && curnode.getElement() != entryafter) {
            curnode = curnode.getNext();
            }
        //if first occurrence of element entryafter was located then insert new node
        if (curnode != null) {
            StringNode newnode = new StringNode(element,distance,curnode.getNext());
            curnode.setNext(newnode);
            }
    }

    private boolean isEmpty() {
        return  head == null;
    }

    private void removeFirst() {
        StringNode oldhead;
        oldhead = head;
        //remove first node from linked list
        if (head != null) {
           head = head.getNext();
           oldhead.setNext(null);
           }
        else {
           throw new NoSuchElementException();
           }
    }

    private void removeLast() {
        StringNode temp, previous;
        temp = head;
        previous = temp;
        //go to last node and remember previous node at all times
        while (temp != null && temp.getNext() != null) {
            previous = temp;
            temp = temp.getNext();
            }
        if (previous != null) {
           //remove last node
           previous.setNext(null);
           }
        else {
           throw new NoSuchElementException();
           }
    }

    //very similar to removeLast except we are looking for element i
    private void removeMid(String element) {
        StringNode temp, previous;
        temp = head.getNext();
        previous = null;
        //go to node containing element and rermember previous node at all times
        while (temp.getElement() != element && temp.getNext() != null) {
            previous = temp;
            temp = temp.getNext();
            }
        if (previous != null && temp.getNext() != null) {
           //not first or last node so we can remove node defined by temp.
           // set the previous node to that after temp
           previous.setNext(temp.getNext());
           temp.setNext(null);
        }
        else {
           throw new NoSuchElementException();
           }
    }
    public static void printList(SLinkedList thelist) {
        StringNode temp;
        if(thelist.isEmpty())
            System.out.println("List is empty");
        else {
            temp = thelist.head;
            while (temp != null) {
               System.out.println(temp.getElement()+" "+temp.getDistance());
               temp = temp.getNext();
            }
            System.out.println();
        }
    }

}
 

diggaa1984

Top Contributor
musst du die LinkedList-Funktionalität selber implementieren, oder kannst du die LinkedList von Java verwenden? dann würde ja schonmal viel rausfallen, und man könnte sich auf das Wesentliche, nämlich der GUI und der Suche nach der Route konzentrieren.

Bei der Suche nach der kürzestens Route (oder die schnellste?) musst du eh die ganzen Listen abklappern .. da kann man vielleicht noch mit andern Datengebilden (Matrizen oder weiss der Geier was) optimieren, aber dazu muss klarer sein, welche vorgaben es genau gibt, bezüglich der Datentypen.

Kann es ausserdem sein, dass man in deiner Beispielroute von Linie grün auf gelb in Mustek umsteigen muss, um sein Ziel zu erreichen!? Das hätte einen interessanten Einfluss auf die Suche der Route.
 
Zuletzt bearbeitet:

Coder55

Mitglied
Ja man muss in Mustek umsteigen um das Ziel zu erreichen. Was meinst du mit LinkedList von Java verwenden ? Mein Code ist doch eine LinekdList oder nicht ?
 

diggaa1984

Top Contributor
hi, wegen der linkedlist .. da ging es mir nur darum, dass sich da keine fehlerteufel einschleichen, wenn du die bereits von java angebotenen strukturen verwendest, und kannst doch so voll und ganz auf die suche und den rest konzentrieren, ohne angst zu haben, dass fehler durch deine datenstruktur entstehen, und du sie vielleicht ganz woanders vermutest.

was die suche angeht, würde ich im ersten ansatz erstmal mit matrizen arbeiten um abzulegen von welcher stadt du wohin kommst. dann kannst du anhand der einträge entscheiden wo auf einer strecke du dann umteigen musst, und brauchst dazu nicht blind in den listen zu navigieren.

welche idee hattest du denn bezüglich der Suche nach einer Route?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Laufzeit LinkedList Allgemeine Java-Themen 9
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
M Delete bei sortierter LinkedList Allgemeine Java-Themen 5
M ArrayList oder LinkedList Allgemeine Java-Themen 10
M verbesserte Laufzeit bei LinkedList Allgemeine Java-Themen 7
L Unterschied zwischen List und LinkedList implementierung? Allgemeine Java-Themen 15
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
S LinkedList Error Allgemeine Java-Themen 4
T Menge an Elementen aus einer LinkedList Allgemeine Java-Themen 6
L Java Slick2D stürzt ab- Zu viel auf einmal? (LinkedList) Allgemeine Java-Themen 7
F LinkedList Allgemeine Java-Themen 3
S Wertepaar in LinkedList/PriorityQueue speichern Allgemeine Java-Themen 3
R LinkedList und Threads: Strukturprobleme bez. löschen von Elementen Allgemeine Java-Themen 3
R LinkedList und Threads - welche Methode ist besser? Allgemeine Java-Themen 2
E Threads linkedlist/multi-thread problem Allgemeine Java-Themen 3
H LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ? Allgemeine Java-Themen 9
C Threads Zwei Threads greifen auf LinkedList zu. Allgemeine Java-Themen 12
B Datentypen JMF: Player LinkedList sinnvoll? ca 30 kurze Sounddateien Allgemeine Java-Themen 3
C LinkedList und ArrayList in HashMap Allgemeine Java-Themen 4
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
R Intervall-Implementierung mit selbstgebauter LinkedList Allgemeine Java-Themen 7
A LinkedList Auslesen und Objekt Löschen Allgemeine Java-Themen 4
nabla LinkedList removeRange ineffizient? Allgemeine Java-Themen 4
G extend LinkedList für Matrosenkiller ;-) Allgemeine Java-Themen 9
R ArrayList, LinkedList oder Set Allgemeine Java-Themen 9
Daniel_L LinkedList vom Typ Object-Array? Allgemeine Java-Themen 4
T Problem mit LinkedList Allgemeine Java-Themen 2
D indexOutOfBoundsException bei LinkedList Allgemeine Java-Themen 10
T zirkuläre LinkedList Allgemeine Java-Themen 8
Caracasa [Threads] Gleichzeitiger Zugriff auf eine LinkedList Allgemeine Java-Themen 9
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
N ArrayList oder LinkedList? Allgemeine Java-Themen 15
M Rekursive Ausgabe einer linkedList Allgemeine Java-Themen 8
J LinkedList und Assoziaziotenen Allgemeine Java-Themen 8
F Synchronisation + Vector/ArrayList/LinkedList Allgemeine Java-Themen 7
C LinkedList Fragen Allgemeine Java-Themen 7
H Daten aus LinkedList ausgeben ! Allgemeine Java-Themen 9
H [LinkedList] Sortieren durch MergeSort Allgemeine Java-Themen 3
S Probleme mit LinkedList und Label mit gridbagLayout Allgemeine Java-Themen 2
M IOException bei save und load in LinkedList Allgemeine Java-Themen 4
N Objekte in LinkedList "umsortieren" Allgemeine Java-Themen 4
C LinkedList Exception abfangen Allgemeine Java-Themen 8
Z LinkedList speichern Allgemeine Java-Themen 2
N Element aus LinkedList löschen Allgemeine Java-Themen 2
Z löschen aus Linkedlist Allgemeine Java-Themen 12
G LinkedList sortieren Allgemeine Java-Themen 3
C Collection, LinkedList, Elemente Allgemeine Java-Themen 4
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
Z WebApp mit Java verbinden. Allgemeine Java-Themen 8
H Schiffe versenken JButton Schiffe mit GUI verbinden Hilfe! Allgemeine Java-Themen 2
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
N 2 Arrays abwechselnd verbinden Allgemeine Java-Themen 13
W Java-Chat via XMLRPC mit PHP-Seite verbinden Allgemeine Java-Themen 3
H Wlan via Java verbinden Allgemeine Java-Themen 5
V Wie kann ich die Fragen mit den anderen Klassen verbinden? Allgemeine Java-Themen 1
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
7 Verbinden von Mehreren Klassen Allgemeine Java-Themen 29
S Website verbinden Allgemeine Java-Themen 5
O Schon verbundene Punkte nicht erneut verbinden Allgemeine Java-Themen 7
M 3D Objekte mit einer Linie Verbinden Allgemeine Java-Themen 3
B JConsole kann sich nicht verbinden Allgemeine Java-Themen 4
T Wie ein Subject mit Execution Thread verbinden? Allgemeine Java-Themen 5
S JFreeChart LineChart Punkte über NULL Werte hinweg verbinden Allgemeine Java-Themen 5
ARadauer PDF Datein verbinden Allgemeine Java-Themen 3
E Objekte verbinden Allgemeine Java-Themen 2
G 2 zeilen in textdatei beim auslesen verbinden Allgemeine Java-Themen 10
P 3 Klassen verbinden Allgemeine Java-Themen 7
H Java mit c verbinden Allgemeine Java-Themen 7
T Zwei Streams verbinden Allgemeine Java-Themen 3
Reeny JNI - Java-Code mit DELPHI verbinden Allgemeine Java-Themen 2
P PDF-Dateien verbinden Allgemeine Java-Themen 3
G Fenster verbinden (docken) Allgemeine Java-Themen 4
G Probleme beim Verbinden auf einen Notes 5 Server Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben