U
uwemann
Gast
Hallo,
hab ein kleines Problem. Versuche eine Implementierung der Datenstruktur Graph. Habe eine Liste angelegt, welche Knoten verwaltet. Diese Knoten verfügen über einen Slot für Objekte, also allgemeiner Datentyp Object. In diesem sind zum einen wieder die anderen Listen verwaltet. Diese Listen selber verwenden wiederrum die Klasse Liste. Allerdings werden hier nun die Objekte mit einem Typ Nachbar initialisiert, den ich angelegt habe.
Ich kann nun auf die Liste mit einer Funktion getData() auf einen Knoten zu greifen und es wird mir ein Objekt zurückgegeben. Wende ich nun hierauf eine Funktion an die für die Klasse Nachbar definiert wurde bekomme ich folgende Fehlermeldung:
hier der Quelltext:
normal müsste bei der Funktion doch das Objekt des Knoten zurückgegeben werden und weil es vom Typ Nachbar ist, müsste auch die Funktion getMinutes ausgeführt werden können.
Wenn jemand eine Lösung hierfür hat, wäre mir sehr geholfen!
Vielen Dank im Voraus
Gruß uwemann
[/code]
hab ein kleines Problem. Versuche eine Implementierung der Datenstruktur Graph. Habe eine Liste angelegt, welche Knoten verwaltet. Diese Knoten verfügen über einen Slot für Objekte, also allgemeiner Datentyp Object. In diesem sind zum einen wieder die anderen Listen verwaltet. Diese Listen selber verwenden wiederrum die Klasse Liste. Allerdings werden hier nun die Objekte mit einem Typ Nachbar initialisiert, den ich angelegt habe.
Ich kann nun auf die Liste mit einer Funktion getData() auf einen Knoten zu greifen und es wird mir ein Objekt zurückgegeben. Wende ich nun hierauf eine Funktion an die für die Klasse Nachbar definiert wurde bekomme ich folgende Fehlermeldung:
Code:
cannot resolve symbol
symbol : method getMinutes ()
location: class Node
System.out.print( " "+ d.getMinutes());
^
hier der Quelltext:
Code:
..... hier steht noch eine public class
class Liste
{
/*
* Klasse fuer einfach verkettete Listen
*/
private Node head; // Slot fuer den Kopf der Liste
private Node tail; // Slot fuer den Tail der Liste
private Node current; // Slot fuer einen aktuellen Knoten in der Liste
// Konstruktur, erzeugt eine leere Liste
Liste()
{
head = null;
tail = null;
current = null;
}
public Node getHead ()
{
return head;
}
public void setHead (Node n)
{
head = n;
if (this.getTail() == null)
this.setTail(n);
}
public Node getTail ()
{
return tail;
}
public void setTail (Node n)
{
tail = n;
if (this.getHead() == null)
this.setHead(n);
}
public Node getCurrent ()
{
return current;
}
public void setCurrent (Node n)
{
current = n;
}
public boolean isEmpty()
{
if (this.getHead() == null)
return true;
else
return false;
}
//diese Funktion fügt neue Knoten ein mit Objekt Nachbar
public void insertOrt(int ort,int stunden,int minuten) {
this.insertTail(new Node(new Nachbar(ort,tm(stunden,minuten))));
}
public int tm(int stunden, int minuten) {
return minuten + (60 * stunden);
}
// Funktion Print druckt die Liste aus
public void Print()
{
Nachbar u = new Nachbar(1,20);
System.out.println(u.getMinutes());
Node d = this.getHead(); // initialisiere aktuelles Element mit Listenkopf
System.out.print("\nListe: ");
while (d != null) { // solange Listenende nicht erreicht
// HIER LIEGT DAS PROBLEM :
System.out.print( " "+ d.getData().getMinutes());
d = d.getNext(); // gehe zum Nachfolger
}
}
}
class Node
{
/*
* Klasse fuer Listenelemente
*/
private Object data; // Inhalt des Elementes (vom Typ Object)
private Node next; // Zeiger zum Nachfolger in der Liste
// Konstruktor nimmt ganze Zahl und gibt ein unverbundenes Listenelement zurueck
Node(Object obj)
{
data = obj;
}
// Funktion getData gibt den Inhalt des Elementes zurueck
public Object getData()
{
return data;
}
// Funktion getData gibt den Inhalt des Elementes zurueck
public void setData(Object obj)
{
data = obj;
}
// Funktion getNext gibt den Nachfolger in der Liste zurueck
public Node getNext()
{
return next;
}
// Funktion setNext setzt den Nachfolger in der Liste auf n
public void setNext(Node n)
{
next = n;
}
}
class Nachbar {
private int minutes;
private int ort;
Nachbar(int ort, int min) {
this.setMinutes(min);
this.setOrt(ort);
}
public void setOrt(int ort) {
this.ort = ort;
}
public void setMinutes(int min) {
this.minutes = min;
}
public int getOrt() {
return this.ort;
}
public int getMinutes() {
return this.minutes;
}
}
normal müsste bei der Funktion doch das Objekt des Knoten zurückgegeben werden und weil es vom Typ Nachbar ist, müsste auch die Funktion getMinutes ausgeführt werden können.
Wenn jemand eine Lösung hierfür hat, wäre mir sehr geholfen!
Vielen Dank im Voraus
Gruß uwemann
[/code]