slette element i liste
Jeg har problemer med en slet_element-metode, der skal kunne slette et enkelt element i listen(dobbelt-hægtet liste). Jeg kan godt få den til at slette et element, men det er bare altid det første element.Metoderne:
//Inspireret af Nicolais W Asmussens G2-opgave om rapportregistrering fra år 2000
public boolean sidsteElement() //sidste element (ja/nej)
{
return aktuelle.naeste==null;
}
//Inspireret af Nicolais W Asmussens G2-opgave om rapportregistrering fra år 2000
public void slet_foerste() //slet foerste
{
aktuelle = foerste = foerste.naeste;
}
//Inspireret af Nicolais W Asmussens G2-opgave om rapportregistrering fra år 2000
public void slet_aktuelle() //slet aktuelle
{
if (sidsteElement()==true && foerste.naeste!=aktuelle) //hvis sidste
{
aktuelle=forrige; //aktuelle en tilbage
forrige=foerste; //forrige til start
aktuelle.naeste=null; //aktuel.naeste peger væk
while (forrige.naeste != aktuelle) //forrige løber listen igennem
forrige=forrige.naeste; //til den er før aktuelle
}
else if(foerste.naeste!=aktuelle || (foerste.naeste==aktuelle && sidsteElement()==false))//ikke sidst ikke først
{
aktuelle = aktuelle.naeste; //aktuelle 1 frem
forrige.naeste = aktuelle; //forrige.naeste = ny aktuelle
}
else if(foerste.naeste==aktuelle && sidsteElement()==true) //hvis 2 rapporter & nr 2 ud
{
aktuelle=foerste; //aktuelle sættes til foerste
forrige=aktuelle.naeste=null; //naeste sættes til null
}
}
//Inspireret af Nicolais W Asmussens G2-opgave om rapportregistrering fra år 2000
public listeElement get_forrige()
{
return forrige;
}
public listeElement get_aktuelle() //Get_aktuelle-metode, der retunerer det aktuelle element pointeren peger på
//Inspireret af Nicolais W Asmussens G2-opgave om rapportregistrering fra år 2000
{
return aktuelle;
}
MetodeKaldet:
if (match.get_forrige()==null && match.get_aktuelle()!=null) //første element
{
match.slet_foerste(); //slet første
}
else if (match.get_aktuelle()==null) //hvis tom liste (gør intet)
{
}
else //vilkårlig anden situation
{
match.slet_aktuelle(); //slet aktuelle
}
