En utilisant des tableaux et des structures de données, il est possible de stocker des données homogènes (mêmes) sur plusieurs emplacements mémoire. Le principal avantage de l’utilisation de tableaux est que nous pouvons les récupérer depuis n’importe quelle position à l’aide du paramètre index. Cette structure de données devient linéaire car les données doivent être insérées et extraites étape par étape. Il suffit de mettre l'index ou le numéro de position de l'élément entre crochets pour le récupérer dans le tableau. Dans cet article, nous utiliserons un tableau A et un autre élément e. Nous insérerons e à la position de départ de A en C++.
Given array A = [10, 14, 65, 85, 96, 12, 35, 74, 69] After inserting 23 at the end, the array will look like this: [23, 10, 14, 65, 85, 96, 12, 35, 74, 69]
Dans l'exemple ci-dessus, nous avons un tableau A contenant neuf éléments. Nous allons insérer un autre élément 23 au début du tableau A. Le tableau résultant contient tous les éléments plus les 23 premiers. Pour insérer un élément au début, nous devons déplacer tous les éléments d'une position vers la droite, puis le premier emplacement sera vide et nous mettons le nouvel élément dans cette position. Jetons un coup d'œil à l'algorithme pour une compréhension plus claire.
Prenez un tableau A et un élément e
Si le tableau A a suffisamment d'espace pour insérer l'élément e, alors
Pour i compris entre n-1 et 0, procédez comme suit :
A[ je + 1 ] = A[ je ]
Fin du cycle
A[0]=e
augmentation n 1
Fin si
Retour à A
#include <iostream> # define Z 50 using namespace std; void displayArr(int arr[], int n){ for( int i = 0; i < n; i++ ){ cout << arr[ i ] << ", "; } cout << endl; } void insertAtBeginning( int A[], int &n, int e ){ if( n + 1 < Z ) { for( int i = n - 1; i >= 0; i-- ) { A[ i + 1 ] = A[ i ]; } A[ 0 ] = e; n = n + 1; } } int main() { int A[ Z ] = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14}; int n = 12; cout << "Array before insertion: "; displayArr( A, n ); cout << "Inserting 58 at the beginning:" << endl; insertAtBeginning( A, n, 58 ); cout << "Array after insertion: "; displayArr( A, n ); cout << "Inserting 225 at the beginning:" << endl; insertAtBeginning( A, n, 225 ); cout << "Array after insertion: "; displayArr( A, n ); }
Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, Inserting 58 at the beginning: Array after insertion: 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, Inserting 225 at the beginning: Array after insertion: 225, 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14,
Vector est une structure de données dynamique qui fait partie du STL C++. Nous pouvons obtenir des fonctionnalités similaires aux tableaux de vecteurs. Mais en vecteur on ne peut insérer qu'à la fin ou derrière. Il n'y a pas de moyen direct d'insérer au début. Cependant, nous pouvons déplacer l'élément d'une position en arrière comme avant et insérer le nouvel élément au début. Ou nous pouvons créer un autre vecteur à un élément contenant uniquement les nouveaux éléments, puis les concaténer. Par conséquent, le vecteur résultant contiendra tous les éléments précédents et le nouvel élément au début. Jetons un coup d'œil à l'algorithme et à l'implémentation C++.
Prenez un tableau A et un élément e
Créez un vecteur vide B
Insérez e dans B
A := Connectez B avec A (d'abord B puis A)
Retour à A
#include <iostream> #include <vector> # define Z 50 using namespace std; void displayArr( vector<int> v ){ for( int i = 0; i < v.size() ; i++ ){ cout << v[ i ] << ", "; } cout << endl; } vector<int> insertAtBeginning( vector<int> A, int e ){ vector<int> B( 1 ); B[ 0 ] = e; B.insert( B.end(), A.begin(), A.end() ); return B; } int main() { vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14}; cout << "Array before insertion: "; displayArr( A ); cout << "Inserting 58 at the beginning:" << endl; A = insertAtBeginning( A, 58 ); cout << "Array after insertion: "; displayArr( A ); cout << "Inserting 225 at the beginning:" << endl; A = insertAtBeginning( A, 225 ); cout << "Array after insertion: "; displayArr( A ); }
Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, Inserting 58 at the beginning: Array after insertion: 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, Inserting 225 at the beginning: Array after insertion: 225, 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14,
Dans cet article, nous avons vu comment insérer des éléments au début d'un tableau. Nous discutons ici de deux solutions différentes. La première solution utilise des tableaux C++ statiques, tandis que la seconde solution utilise des vecteurs. Les vecteurs n'ont aucun moyen d'insérer des éléments directement au début. Nous pouvons insérer des éléments directement à la fin en utilisant la méthode push_back(). Pour ce faire, nous utilisons une astuce où nous créons un tableau de taille 1 et y insérons le nouvel élément. Ensuite, concaténez-le avec le tableau donné. Nous pouvons obtenir le même effet en utilisant des listes. Cependant, les listes C++ ont la méthode push_front(), qui insère les éléments directement au début. Mais les listes ne sont pas des tableaux, ce sont des listes chaînées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!