Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Habe das Forum beim googlen nach einer Lösung für mein Problem gefunden und hoffe das mir hier geholfen werden kann.
Ich soll eine Klasse Stack so vervollständigen, dass sie anstatt eines Arrays (das war eine Teilaufgabe die ich gelöst habe) eine verkettete Liste zu DAtenspeicherung nutzt.
Ich habe eine Klasse Link gegeben :
Java:
package stack;
public class Link {
protected Object data;
protected Link next;
public Link(){ // Erzeugt ein neues, leeres Link-Objekt
this.data = null;
this.next = null;
}
public Link(Object data){ // Erzeugt ein neues, gefülltes Link-Objekt
this.data = data;
this.next = null;
}
}
und eine Klasse Stack
Java:
package stack;
public class Stack {
public void empty(){
}
public void push(Object element){
}
// usw
}
Meine Frage ist : Was macht die Klasse Link genau ? Und wie soll ich sie nutzen ? Ich steh grad auf dem Schlauch.
Hmm vll hab ich meine Problemstellung nicht genau genug erläutert !
Ich weiß grad nicht wie ich in der Klasse Stack anfangen soll.
Also ob ich sowas wie
Java:
Link a = new Link();
brauche. Und wenn ja, dann wie weiter. Mir würde z.B der Quellcode der in der Methode push() (Diese soll ein Element auf den Stack legen) stehen soll sehr viel weiter helfen. Mir fehlt einfach der Ansatz.
Ich geh mal davon aus, dass du push meintest. Ja, dass ist eben das Problem wie mach ich das ? Muss ich dafür einen Array oder Vektor machen und da die Objekte reinschreiben ?
ist das hier ungefähr was du dir vorgestellt hast? ist zwar ein "FIFO-Stack" aber nur zum herzeigen erstmal.
Main.java
Java:
package stack;
public class Main {
static Auto myAuto;
public static void main(String[] args) {
Stack myStack = new Stack();
myStack.push(myAuto = new Auto("rot", 2011));
myStack.push(new Auto("schwarz", 1998));
while(myAuto != null){
System.out.println("farbe: "+myAuto.farbe + " | erstzulassung: "+myAuto.erstzulassung);
myAuto = myAuto.next;
}
}
}
Link.java
Java:
package stack;
public final class Link {
private static Link instance;
Auto myAuto;
private Link() {
}
public static Link getInstance(){
if(instance == null){
instance = new Link();
}
return instance;
}
public void add(Auto myAuto){
if(this.myAuto == null){
this.myAuto = new Auto();
this.myAuto = myAuto;
} else {
this.myAuto.next = new Auto();
this.myAuto.next = myAuto;
this.myAuto = myAuto;
}
}
}
Stack.java
Java:
package stack;
public class Stack {
Link linkInstance;
public Stack() {
linkInstance = Link.getInstance();
}
public void empty() {
}
public void push(Auto element) {
linkInstance.add(element);
}
}
Auto.java
Java:
package stack;
public class Auto {
String farbe;
int erstzulassung;
Auto next;
public Auto() {
}
public Auto(String farbe, int erstzulassung) {
this.farbe = farbe;
this.erstzulassung = erstzulassung;
}
}