Verschiebe Elemente im Array

7

Das ist elementar, aber mein Googeln schneidet es einfach nicht ab. Ich weiß, dass ich etwas anderes tun muss, um die Werte eines Arrays einzeln zu verschieben, aber die folgende Kodierung gibt mir die gleichen Werte für Items [k] bis Items [Unendlich] alle gleichwertigen Items [k]. Was ich nicht verstehe, ist, wie der ursprüngliche k + 1-Wert erhalten bleibt, während ich den k-Wert in den k + 1-Slot kopiere.

%Vor%

Muss es eine rekursive Methode sein?

    
Sukwoo 28.09.2012, 03:01
quelle

4 Antworten

5

Eine einfache Option wäre, das Array rückwärts zu durchlaufen

%Vor%

Option 2:

Wenn Sie Ihre Methode beibehalten möchten, können Sie die Variable temp auch anders verwenden

vor Ihrer for-Schleife initialisieren Sie Temp zu

%Vor%

und dann können Sie in der Schleife temp verwenden, um den [k + 1] Wert in temp zu speichern, anstatt den [k] Wert zu speichern.

%Vor%

Sie sollten auch Ihre Grenzen beachten, damit k + 1 nicht über das letzte Element im Array hinausgeht. Sie könnten etwas wie numItems - 1 mit einer vorherigen Überprüfung verwenden, um sicherzustellen, dass das Array nicht leer ist.

    
Jasmeet Oberai 28.09.2012, 03:29
quelle
17

Sie können auch memmove verwenden, das Überlappungen von Regionen behandelt.

%Vor%     
Teudimundo 28.09.2012 07:48
quelle
0

Können Sie die Umkehrmethode

ausprobieren?

Dies ist ein Beispiel.

%Vor%     
vsmph 03.11.2016 07:06
quelle
0
%Vor%     
ENG Abanoub Ashraf 29.10.2017 19:47
quelle

Tags und Links