Sunteți pe pagina 1din 3

Inserarea elementelor

 Când ne referim la inserarea unui element în interiorul unui vector, trebuie să ne


gândim în felul următor:

1. Dorim să introducem o valoare între elementele de pe poziția 3 și 4;


2. Vom muta toate elementele începând cu poziția 4 „la dreapta” o poziție,
pentru a crea un spațiu liber (dimensiunea tabloului trebuie să permită
extinderea, altfel vom pierde valori de la sfârșit);
3. Inserăm valoarea în spațiul eliberat și creștem variabila ce memorează
totalul de valori.
Inserarea unei valori în poziția k
 v este tabloul în care inserăm;
 n este numărul de elemente al tabloului;
 k este poziția în care inserăm;
 x este valoarea pe care o introducem în poziția k.
int v[1001], n, k, x;
...
for (int i=n-1; i>=k; --i) v[i+1]=v[i]; /* eliberăm poziția k */
v[k]=x; // introducem valoarea în v[k]
n++; /* creștem numărul de elemente întrucât am introdus o valoare nouă */
 Eliberarea unei poziții se face cu ajutorul unui for, mutând toate
elementele cu o poziție mai la dreapta (de la coadă la cap, deoarece invers am
pune în toate căsuțele valoarea din v[k+1]).
Exemplu - problemă rezolvată
Se citește un număr n, n∈(0,103], urmat de n elemente numere întregi ale
unui vector v. Să se insereze media aritmetică între oricare două elemente
alăturate și să se afișeze elementele separate printr-un spațiu.
#include <iostream>
using namespace std;
int n;
float v[2001];
int main ()
{
int i,j;
cin>>n;
for(i=0; i<n; i++) cin>>v[i];
for(i=1; i<n; i+=2)
{
for(j=n-1; j>=i; j--)
v[j+1]=v[j];
v[i]=(v[i+1] + v[i-1])/2;
n++;
}
for(i=0; i<n; i++)
cout<<v[i]<<' ';
return 0;
}
4
2579

2 3.5 5 6 7 8 9

5
0 5 1 33 10

0 2.5 5 3 1 17 33 21.5 10

 Vom parcurge tabloul pe pozițiile impare (unde se vor insera mediile) și vom
muta toate elementele următoare cu o poziție mai la dreapta (for-ul cu
indicele j). În poziția proaspăt eliberată, marcată de variabila i, vom insera
media aritmetică a vecinilor (v[i-1] și v[i+1]).
  Numărul de elemente n va crește la fiecare medie inserată.

S-ar putea să vă placă și