Rumah > pembangunan bahagian belakang > C++ > Program C++ untuk menambah elemen pada permulaan tatasusunan

Program C++ untuk menambah elemen pada permulaan tatasusunan

WBOY
Lepaskan: 2023-09-08 15:01:02
ke hadapan
871 orang telah melayarinya

Program C++ untuk menambah elemen pada permulaan tatasusunan

Dengan menggunakan tatasusunan dan struktur data, adalah mungkin untuk menyimpan data homogen (identical ) merentas berbilang lokasi memori. Faedah utama menggunakan tatasusunan ialah kita boleh mendapatkannya dari mana-mana kedudukan menggunakan parameter indeks. Struktur data ini menjadi linear kerana data mesti dimasukkan dan diekstrak langkah demi langkah. Kita hanya perlu meletakkan indeks atau nombor kedudukan elemen di dalam kurungan segi empat sama untuk mendapatkannya daripada tatasusunan. Dalam artikel ini, kami akan menggunakan tatasusunan A dan elemen lain e. Kami akan memasukkan e pada kedudukan permulaan A dalam C++.

Fahami konsep dan gambarkan dengan contoh

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]
Salin selepas log masuk

Dalam contoh di atas, kami mempunyai tatasusunan A yang mengandungi sembilan elemen. Kami akan memasukkan elemen lain 23 pada permulaan tatasusunan A. Tatasusunan yang terhasil mengandungi semua elemen ditambah dengan 23 terkemuka. Untuk memasukkan elemen pada permulaan kita perlu mengalihkan semua elemen satu kedudukan ke kanan, kemudian slot pertama akan kosong dan kita meletakkan elemen baru dalam kedudukan itu. Mari kita lihat algoritma untuk pemahaman yang lebih jelas.

Algoritma

  • Ambil tatasusunan A dan elemen e

  • Jika tatasusunan A mempunyai ruang yang cukup untuk memasukkan elemen e, maka

    • Untuk i dalam julat dari n-1 hingga 0, lakukan perkara berikut:

      • A[ i + 1 ] = A[ i ]

    • Tamatkan gelung

    • A[0]=e

    • kenaikan n 1

  • Tamat jika

  • Kembalikan A

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

#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 );
}
Salin selepas log masuk

Output

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,
Salin selepas log masuk
Salin selepas log masuk

Gunakan vektor untuk memasukkan elemen di hadapan

Vector ialah struktur data dinamik yang merupakan sebahagian daripada C++ STL. Kita boleh mendapatkan fungsi yang serupa dengan tatasusunan dalam vektor. Tetapi dalam vektor kita boleh memasukkan hanya pada hujung atau belakang. Tidak ada cara langsung untuk memasukkan pada permulaan. Walau bagaimanapun, kita boleh mengalihkan kedudukan elemen satu kembali seperti sebelumnya dan memasukkan elemen baharu pada permulaan. Atau kita boleh mencipta satu lagi vektor elemen yang mengandungi hanya elemen baharu dan kemudian menggabungkannya. Oleh itu, vektor yang terhasil akan mengandungi semua elemen sebelumnya dan elemen baharu pada permulaan. Mari kita lihat algoritma dan pelaksanaan C++.

Algoritma

  • Ambil tatasusunan A dan elemen e

  • Buat vektor kosong B

  • Masukkan e ke dalam B

  • A := Sambungkan B dengan A (mula-mula B kemudian A)

  • Kembalikan A

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

#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 );
}
Salin selepas log masuk

Output

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,
Salin selepas log masuk
Salin selepas log masuk

KESIMPULAN

Dalam artikel ini, kita telah melihat cara memasukkan elemen pada permulaan tatasusunan. Di sini kita membincangkan dua penyelesaian yang berbeza. Penyelesaian pertama menggunakan tatasusunan C++ statik, manakala penyelesaian kedua menggunakan vektor. Vektor tidak mempunyai cara untuk memasukkan elemen secara langsung pada permulaan. Kita boleh memasukkan elemen secara langsung pada penghujung menggunakan kaedah push_back(). Untuk melakukan ini, kami menggunakan helah di mana kami mencipta tatasusunan saiz 1 dan memasukkan elemen baharu ke dalamnya. Kemudian gabungkannya dengan tatasusunan yang diberikan. Kita boleh mencapai kesan yang sama menggunakan senarai. Walau bagaimanapun, senarai C++ mempunyai kaedah push_front(), yang memasukkan elemen terus di hadapan. Tetapi senarai bukan tatasusunan, ia adalah senarai terpaut.

Atas ialah kandungan terperinci Program C++ untuk menambah elemen pada permulaan tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan