Insert Element in Array

Bei Postings zu Algorithmus X lassen Sie Ihren Betreff bitte mit
"X: " beginnen, bei allgemeinen Postings zu Nabla bitte mit "Nabla: ", jeweils gefolgt von einer möglichst präzisen Überschrift, danke!

Moderator: Algorithmen und Datenstrukturen

Forumsregeln
Bei Postings zu Algorithmus X lassen Sie Ihren Betreff bitte mit
"X: " beginnen, bei allgemeinen Postings zu Nabla bitte mit "Nabla: ", jeweils gefolgt von einer möglichst präzisen Überschrift, danke!
Hallo
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 162
Registriert: 22. Apr 2015 19:03

Insert Element in Array

Beitrag von Hallo » 30. Aug 2016 18:53

Hi,
Mein Code wird Kompiliert jedoch keiner der Tests gehen durch.

Frage: in der Aufgabenstellung steht
Listobject<T> keyist ein Wert der an eine geeignete Stelle in der Sequenz eingefügt werden soll.
Jedoch wird uns in der Methode Element gegeben..was hat jetzt Key damit zu tun ?

Code: Alles auswählen

{

    
    for(int i =0; i < array.length;i++){
        
        if(pos==i){
            array[i] = element;
        }
    }
    return array;
    
}

Hallo
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 162
Registriert: 22. Apr 2015 19:03

Re: Insert Element in Array

Beitrag von Hallo » 31. Aug 2016 12:13

PUSH

Benutzeravatar
Malou
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 19. Jun 2016 17:54

Re: Insert Element in Array

Beitrag von Malou » 14. Sep 2016 15:59

Hey,

Key aus der Aufgabestellung ist element im Methodenkopf.

Zu deinem Code seh ich folgendes:

Du ersetzt hier nur das Element an Position pos mit dem gebebenen Element, aber damit überschreibst du einen Wert, den du behalten solltest. :wink:
Du musst zuerst ein grösseres Array haben, als das gegebene und ab der Stelle, wo du dein Element einfügen willst, musst du alle Werte um eins nach hinten rücken, sodass du einen freien Platz für deinen neuen Wert hast.

Konkret:
Wenn du z. B. {1, 2, 4, 3, 2} hast und an Index 2(wo die 4 steht) den Wert 14 einfügen willst, musst du folgendes machen:
Ein neues Array mit Länge 6 erstellen.
Dieses mit den Werten aus dem ersten Array bis auf die Position 2 füllen: {1, 2, null, null, null, null}.
Das neue Wert (14) einfügen: {1, 2, 14, null, null, null}.
Den Rest auffüllen: {1, 2, 14, 4, 3, 2}.

Mit deinem Code würde in diesem Beispiel folgendes Array rauskommen: {1, 2, 14, 3, 2}. Dabei ging die 4 verloren, was wir natürlich nicht wollen. :mrgreen:

Ich hoffe, das hat dir weiter geholfen!

Malou

Antworten

Zurück zu „AuD: Arbeit mit Nabla“