Hi,
ich versuch grad eine Warteschlange zu programmieren. Diese soll einige COntainer zwischenspeichern bevor ich sie bearbeite. Die Container haben unterschiedliche Priorität und werden somit nicht einfach ans ende der Schlange gesetzt sondern manchmal halt auch mitten rein.
Hab sowas schonmal ähnlich als stapel programmiert, nur damals ohne Prioritäten^^
Nun wollt ich mal zur probe 10 zufällige Container in die Schlange legen. Java gibt keine Fehlermeldung aus, aber es wird nur der letzte Container gespeichert und vermutlich die anderen überschrieben.
Aber iwi find ich den Fehler net. Hier ist mein Qt:
mfg
ich versuch grad eine Warteschlange zu programmieren. Diese soll einige COntainer zwischenspeichern bevor ich sie bearbeite. Die Container haben unterschiedliche Priorität und werden somit nicht einfach ans ende der Schlange gesetzt sondern manchmal halt auch mitten rein.
Hab sowas schonmal ähnlich als stapel programmiert, nur damals ohne Prioritäten^^
Nun wollt ich mal zur probe 10 zufällige Container in die Schlange legen. Java gibt keine Fehlermeldung aus, aber es wird nur der letzte Container gespeichert und vermutlich die anderen überschrieben.
Aber iwi find ich den Fehler net. Hier ist mein Qt:
Java:
public class Warteschlange {
private static cpoint head;
public void create(){
head=new cpoint();
head.route2=null;
}
public void push(Container c){
cpoint temp=new cpoint();
cpoint temp2=new cpoint();
temp2.wert=c;
if(empty()){
head.route2=temp2;
temp2.route1=head;
}
else{
temp=head.route2;
while ((temp2.wert.getpriorität()<=temp.wert.getpriorität())&&(temp.route2!=null)){
temp=temp.route2;
}
temp2.route1=temp.route1;
temp2.route2=temp;
temp.route1=temp2;
}
}
public Container pop(){
Container temp=new Container();
if(empty()){
return null;
}
else{
temp=head.route2.wert;
if(head.route2.route2==null){
head.route2=null;
}
else{
head.route2=head.route2.route2;
}
}
return temp;
}
public boolean empty(){
if (head.route2==null){
return true;
}
else{
return false;
}
}
}
public class cpoint {
Container wert;
cpoint route1;
cpoint route2;
}
public class Container {
private int priorität;
public int wert;
public int getpriorität(){
return this.priorität;
}
public void setpriorität(int p){
this.priorität=p;
}
}
mfg