Datenstruktur für Fahrplan einer Buslinie

Status
Nicht offen für weitere Antworten.
S

Schorschilein

Gast
Hallo,

ich suche nach einer Möglichkeit in einer Klasse Fahrplan, welche den Fahrplan einer Bus/Zugline für eine Haltestelle bereithalten soll, eine Abfahrtszeit sowie einen Abfahrtstag einzulagern und bei Bedarf zu einem übergebenen Tag/Uhrzeit die nächste mögliche Abfahrtzeit ausspuckt:

Code:
	public final static int Montag = 0;
	public final static int Dienstag = 1;
        // [...]

       public Fahrplanzeiten getZeit(int tag, int uhrzeit);

Tage sind in diesem Fall Integer (0-6) für Montage, ..., Sonn- und Feiertage. Uhrzeit ist ebenfalls ein Integer (830 für 8:30, 2230 für 22:30)

Ich wollte das zuerst mit verketteten Listen machen, denke aber das dies nicht gerade die eleganteste Lösung ist. Stellt Java irgendwelche Klassen bereit mit denen man so etwas am besten realisieren kann? Wichtig ist das die Methode getZeit() sehr schnell arbeitet. Auf diese wird ein Dijkstra-Algorithmus zugreifen der in einem gewichteten Graphen nachher die schnellste Verbindung suchen wird. Bei ca. 3000 Knoten die abgebildet werden bedeutet dies, dass auch getZeit() 3000 mal aufgerufen wird und zum übergebenen Tag und Uhrzeit die nächste mögliche Verbindung ausgeben muss.

Vielen Dank schon mal!

Gruß

Schorsch
 

mic_checker

Top Contributor
Wie speicherst du denn bisher den Graphen ? (Also den eigentlichen Plan) ? Bzw. was hast du schon gemacht ?

Hab den Dijkstra auch mal programmiert, der einfachheitshalber anfangs mit ner adjazenzmatrix, danach mal mit adjazenzlisten.

Im Prinzip kannst du die einzelnen Abfahrts/Ankunftszeiten ja schon in ner Liste speichern, solange du sie sortierst....das müsstest du dann einmal machen - da wohl kaum neue Haltestellen dazu kommen.
 
B

bygones

Gast
ich würde dir raten nicht das Rad neuzuerfinden... such im netz nach bestehenden Graph und Graphalgorithmen Libraries. Es gibt viele und verdammt gute....
 
S

Schorschilein

Gast
Servus,

derzeit nutze ich Adjazenzlisten. Den Dijkstra habe ich auch schon implementiert. Die Gewichte der Kanten (Minuten) werden vom Dijkstra via getMinuten() geholt, derzeit sind dies feste Werte. In dieser getMinuten() möchte ich jetzt dynamisch auf die nächste mögliche Abfahrtzeit zugreifen.

@deathbyaclown
Richtig. Allerdings mache ich dies im Rahmen meiner Studienarbeit. Ich weiß nicht wie mein Prof. darauf reagieren wird wenn ich was kopiere. Das ich den Dijkstra mehr oder weniger Abtippe (von C++ nach Java übersetzt) ist ja klar, da werde ich nix neues erfinden. Aber der ganze Rest sollte schon von mir sein.

Meine erste Idee waren wie gesagt verkettete Listen.

Code:
	static class Fahrplanzeiten implements Cloneable{
		int tag;		
		int uhrzeit;
		Fahrplanzeiten next = null;
		
		public Fahrplanzeiten(int tag, int uhrzeit) {
			this.tag = tag;
			this.uhrzeit = uhrzeit;
		}
		
		public Object clone() {
			try {
						Fahrplanzeiten n = (Fahrplanzeiten) super.clone();
						return n;
			} catch ( CloneNotSupportedException ex ) {
						return null;
			}
		}
	}

Beim einfügen würde ich halt die Liste durchgehen und das neue Element an passender Stelle einfügen und beim auslesen einfach die Liste durchwandern.

Gruß

Schorsch
 

DP

Top Contributor
..oder nen container mit dem streckenplan und einen zeiger, welche station gerade angefahren wird...
 

mic_checker

Top Contributor
Also wenns für ne Studienarbeit ist würde ich es soweit selbst implementieren oder halt Rücksprache halten inwiefern du auf was zurückgreifen darfst. Andererseits ist die Implementierung einer Adjazenzliste etc. nun auch nicht das schwerste.

Ich wüsste nicht was gegen das Vorgehen sprechen sollte....In der einen Liste speicherst du die einzelnen Standorte, also die jeweiligen Stationen.

Wobei du dann für die einzelnen "nächst-möglichen-stationen" wiederrum ne liste brauchst, da du ja verschiedene fahrzeiten hast....
 

Newlukai

Mitglied
Wenn ich die Aufgabenstellung richtig verstanden habe, willst Du zu EINER Linie an EINER Haltestelle sämtlich Abfahrtstage und Abfahrtszeiten, oder?
Wie wär's denn in dem Fall mit einem (oder mehreren, für jeden Tag einen) Suchbaum?
 
S

Schorschilein

Gast
Nicht ganz....ich will zu einer Station die kürzeste Fahrtzeit zu einer anderen Station. An jeder Station können mehrere Linien zu unterschiedlichen Zeiten fahren.

Es scheint allerdings so als hätte sich das ganze schon erledigt. Dies ganze wird eine Gruppenarbeit und der Datenbanken-Mensch ;-) hat anscheined parallel ebenfalls eine Klasse für Stationen und Fahrpläne entwickelt. Er arbeitet bei den Fahrplänen wohl mit einer LinkedList. Ich muss mir mal angucken was der da gemacht und ob ich das verwenden kann. Danke für eure Hilfe.

Gruß

Schorsch
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Datenstruktur für Savings Algorithmus und Planung von kleinen Programmierprojekten Java Basics - Anfänger-Themen 1
T Datenstruktur für Sortierung Java Basics - Anfänger-Themen 4
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
D Was fürne Datenstruktur für Kreuztabelle mit doubles? Java Basics - Anfänger-Themen 1
P geeignete Datenstruktur für dreidimensionale Raumbelegung Java Basics - Anfänger-Themen 5
S Welche Datenstruktur für Tabelle/DB? Java Basics - Anfänger-Themen 5
1 Wahl der Datenstruktur für die Suche. Java Basics - Anfänger-Themen 9
F Welche Datenstruktur für Matrix mit Vektoren? Java Basics - Anfänger-Themen 2
F Gibt es eine Datenstruktur für Koordinaten x, y? Java Basics - Anfänger-Themen 8
E Welche Datenstruktur für Spielbäume? Java Basics - Anfänger-Themen 13
H Datenstruktur für folgende Daten Java Basics - Anfänger-Themen 8
K Welche Datenstruktur für eine Bibliotheksanwendung? Java Basics - Anfänger-Themen 5
G datenstruktur für jTable? Java Basics - Anfänger-Themen 4
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
O Datenstruktur auf SET prüfen in O(n) Java Basics - Anfänger-Themen 32
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
F Beste Datenstruktur zum Speichern? Java Basics - Anfänger-Themen 1
I Spielbrett programmieren: Datenstruktur Java Basics - Anfänger-Themen 3
R Klassen Die lineare Datenstruktur Queue Java Basics - Anfänger-Themen 3
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
C Methoden Datenstruktur Liste Java Basics - Anfänger-Themen 3
S Datentypen nicht lineare STATISCHE Datenstruktur? Java Basics - Anfänger-Themen 10
S Zusammenhang Datenstruktur/Algorithmus Java Basics - Anfänger-Themen 1
M Datenstruktur gesucht Java Basics - Anfänger-Themen 3
Luk10 Geeignete Datenstruktur Java Basics - Anfänger-Themen 4
J Erzeugen einer Datenstruktur Java Basics - Anfänger-Themen 12
H mehrdimensionale Datenstruktur erfassen Java Basics - Anfänger-Themen 10
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
T Java-Datenstruktur: zuweisen von Strings auf Listen von Strings Java Basics - Anfänger-Themen 10
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
A begrenzte Datenstruktur zur Speicherung von bytes Java Basics - Anfänger-Themen 6
H Adjazenzliste - Datenstruktur aber wie? Java Basics - Anfänger-Themen 7
Povlsen84 Datentypen Große, sortierte, schnelle Datenstruktur Java Basics - Anfänger-Themen 9
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
B Schlange Datenstruktur Java Basics - Anfänger-Themen 16
G Datenstruktur gesucht Java Basics - Anfänger-Themen 14
A Schnelle, dynamische, geordnete Datenstruktur? Java Basics - Anfänger-Themen 11
E Gibt es eine ähnliche Datenstruktur wie eine Hashmap Java Basics - Anfänger-Themen 3
K eigene Hash-Datenstruktur Java Basics - Anfänger-Themen 2
K Datentyp vs. Datenstruktur - Unterschiede Java Basics - Anfänger-Themen 13
D Was machen wenn Datenstruktur sich ständig ändert? Java Basics - Anfänger-Themen 10
0 Dynamische Datenstruktur ohne Duplikate und mit direkter Elementauswahl Java Basics - Anfänger-Themen 3
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
I Datenstruktur eines Terminkalenders Java Basics - Anfänger-Themen 11
K suche nicht dynamisch Datenstruktur Java Basics - Anfänger-Themen 6
M Suche passende Datenstruktur Java Basics - Anfänger-Themen 3
G Suche geeignete Datenstruktur Java Basics - Anfänger-Themen 8
G Baum Datenstruktur Java Basics - Anfänger-Themen 2
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
G Datenstruktur und die Kommunikation mit der GUI Java Basics - Anfänger-Themen 10
X txt datei in eine datenstruktur einlesen Java Basics - Anfänger-Themen 3
J Datenstruktur Java Basics - Anfänger-Themen 6
G Datenstruktur [int id, int wert] nach wert sortieren? Java Basics - Anfänger-Themen 5
G Geeignete Datenstruktur ? Java Basics - Anfänger-Themen 8
N passende Datenstruktur Java Basics - Anfänger-Themen 3
E welche Datenstruktur (Collection) Java Basics - Anfänger-Themen 4
6 Welche Datenstruktur? Java Basics - Anfänger-Themen 3
P Datenstruktur Java Basics - Anfänger-Themen 4
J Kann man Daten innerhalb einer Datenstruktur verändern? Java Basics - Anfänger-Themen 4
K datenstruktur Java Basics - Anfänger-Themen 5
G Datenstruktur abbilden Java Basics - Anfänger-Themen 3
P Datenstruktur gesucht: Array mit Dictionary Java Basics - Anfänger-Themen 2
G Komplexe Datenstruktur (Liste heterogener Datensätze) ? Java Basics - Anfänger-Themen 2
P Welche Datenstruktur um schnell zu suchen? Java Basics - Anfänger-Themen 25
S Heterogene Datenstruktur Problem mit Set Java Basics - Anfänger-Themen 12
G Datenbank VS simpler Datenstruktur Java Basics - Anfänger-Themen 3
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
G Icon für App Java Basics - Anfänger-Themen 1
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
M Minimax-Algorithmus für Vier gewinnt Java Basics - Anfänger-Themen 11
M GUI für Vier-Gewinnt. Java Basics - Anfänger-Themen 4
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
Ostkreuz Counter für Booleanwerte Java Basics - Anfänger-Themen 8
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M monte carlo Algorithmus für 4 gewinnt Java Basics - Anfänger-Themen 12
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33

Ähnliche Java Themen

Neue Themen


Oben