Lösungsthread singly linked List

Vykyfikation
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 9. Mai 2017 12:44

Lösungsthread singly linked List

Beitrag von Vykyfikation » 13. Mai 2017 09:54

Hier ein Thread, in dem Lösungen zu allen möglichen Aufgaben der singly linked List gepostet werden können.
Dachte mir es macht Sinn, da man häufig einfach nicht auf die Lösung kommt oder man ewig am rumrätseln ist, warum der eine letzte Test nicht klappt. :)
Bitte nur Lösungen reinposten, die auch komplett funktionieren!

Vykyfikation
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 9. Mai 2017 12:44

Lösung zu "invert iterativly LinkedList"

Beitrag von Vykyfikation » 13. Mai 2017 09:55

Hier ist die Lösung zu: "Iteratives Invertieren einer Single-LinkedList"

Code: Alles auswählen

{
    if(head == null){
        return null;}
    ListElement<T> cur = head;
    ListElement<T> prev = null;
    ListElement<T> prevprev = null;
    while(cur.hasNext()){
        ListElement i = cur;
            prevprev = prev;
            prev = cur;
            cur = cur.next();
            prev.setNext(prevprev);
    }
    cur.setNext(prev);
    return cur;
}
Zuletzt geändert von Vykyfikation am 13. Mai 2017 11:47, insgesamt 1-mal geändert.

Vykyfikation
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 9. Mai 2017 12:44

Lösung zu "clone linked elements"

Beitrag von Vykyfikation » 13. Mai 2017 11:45

Nicht ganz aus der Aufgabenstellung ersichtlich war, dass man jedes Nachfolgeelement auch klonen soll.

Code: Alles auswählen

{
    ListElement<T> cur = el;
    ListElement<T> first = new ListElement<T>(el.getData()); 
    ListElement<T> curnew = first;
    while(cur.hasNext()){
        ListElement<T> next = new ListElement<T>(cur.next().getData());
        curnew.setNext(next);
        curnew = curnew.next();
        cur = cur.next();
    }
    return first;
}

Janosch
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 17. Mär 2014 14:28

Re: Lösung zu "invert iterativly LinkedList"

Beitrag von Janosch » 6. Jun 2017 21:34

Vykyfikation hat geschrieben:
13. Mai 2017 09:55

Code: Alles auswählen

        ListElement i = cur;
 
Hat das irgendeine Funktion?

Condor
Neuling
Neuling
Beiträge: 5
Registriert: 7. Mai 2009 00:51

Re: Lösungsthread singly linked List

Beitrag von Condor » 12. Jul 2017 19:34

Hat irgendjemand die Lösung zu insertSingle?
Man soll doch nur das Element el einfügen OHNE nachfolger, oder?
Bestehe mit der Lösung 15/24 tests. Im TestReport schlagen die Tests mit der Meldung:
"insertSingleFirst()" was called less times than expected fehl.

Code: Alles auswählen

public boolean insertSingle_exe(ListElement<T> el, int idx){

    ListElement<T> current = getFirst();
    int size = size();
    
    //Spezialfaelle
    if(el == null || contains(el) || idx<0 || idx>size){
        return false;
    }
    
    //Insert first
    if(idx == 0){
        return insertSingleFirst(el);
    }
    
    //insert last
    if(idx == size){
        return insertSingleLast(el);
    }
    
    for(int i=1; current != null; i++){
        //falls pos gefunden
        if(i==idx){
            el.setNext(current.next());
            current.setNext(el);
            setSize(size+1);
            return true;
        }        
        current = current.next();
    }    
    return false;    
}

Dadung
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 7. Mai 2017 13:08

Re: Lösungsthread singly linked List

Beitrag von Dadung » 13. Jul 2017 09:33

ich weiß nicht mehr genau, wie es da war, aber bei nabla/codemonkeys muss man auch immer mal ausprobieren, ob das nicht von 1 aus zählt, also teste mal if (pos == 1) InsertSingleFirst, vielleicht funktioniert das

Antworten

Zurück zu „Archiv“