Ta có thể thực hiện thao tác thêm phần tử vào mảng qua 3 cách đó là:
1) Thêm vào đầu mảng;
2) Thêm vào cuối mảng;
3)Thêm vào giữa mảng.
Giã sử có mạng như hình dưới
Ta cần thêm vào số 111 vào trong mảng và đặt nó nằm vị trí index = 7, nghĩa là phần tử này sau khi được thêm vào mảng sẽ nằm ở giữa phần tử 77 và 88. Xem hình bên dưới
Ta cần thực hiện lùi tất cả các số phía sau nơi được thêm(bao gồm cả vị trí thêm) về phía sau 1 index sau đó tăng kích thước của mảng lên 1 đơn vị. Xem hình dưới để dễ hình dung hơn việc thêm một phần tử vào mảng:
Các bước thêm phần tử vào trong mảng một chiều
- Nhập vào vị trí index và phần tử cần thêm vào mảng
- Kiểm tra mảng đã đầy chưa, nếu đã đầy thì không thể thêm phần tử
- Nếu địa chỉ bằng 0 thì thêm vào đầu, nếu địa chỉ bằng n thì thêm vào cuối (n ở đây là số lượng phần tử)
- Dịch chuyển mảng từ vị trí cần thêm về bên trái 1 đơn vị
- Sau khi đã dịch chuyển đến vị trí cần thêm, thực hiện thêm phần tử đó vào
- Tăng kích thước mảng lên 1 đơn vị
Chương trình thêm phần tử vào mảng bằng ngôn ngữ C/C++
#include <stdio.h> int main(){ //khai bao kich thuoc mang n = 10 int n = 10; //khai bao mang gom n phan tu int a[n] = {11,22,33,44,55,66,77,88,99,10}; //phan tu can them vao mang int PhanTu = 111; //vi tri can them int index = 7; //neu index <= 0 thi gan index = 0 de them vao dau mang if(index <= 0){ index = 0; } //neu index >= n thi gan index = n de them vao cuoi mang if(index >= n){ index = n; } //dich chuyen cac phan tu for(int i = n; i > index; i--){ //dich chuyen phan tu sang ben trai a[i] = a[i-1]; } //them phan tu 111 vao vi tri index 7 a[index] = PhanTu; //tang kich thuoc mang len 1 don vi n++; }
Hàm thêm phần tử vào mảng bằng ngôn ngữ C/C++
Hàm void ThemPhanTu(int a[], int index, int PhanTu, int &n) dưới đây nhận các tham số là: int a[] là mảng cần thêm phần tử, int index là địa chỉ cần thêm, int PhanTu là giá trị cần thêm vào mảng và int &n là tham chiếu đến biến n số lượng phần tử của mảng để khi thực hiện thêm phần tử ta sẽ tăng biến n lên 1 đơn vị
#include <stdio.h> void ThemPhanTu(int a[], int index, int PhanTu, int &n){ //neu index <= 0 thi gan index = 0 de them vao dau mang if(index <= 0){ index = 0; } //neu index >= 10 thi gan index = 10 de them vao cuoi mang if(index >= n){ index = n; } //dich chuyen cac phan tu for(int i = n; i > index; i--){ //dich chuyen phan tu sang ben trai a[i] = a[i-1]; } //them phan tu 111 vao vi tri index 7 a[index] = PhanTu; //tang kich thuoc mang len 1 don vi n++; } int main(){ //khai bao kich thuoc mang n = 10 int n = 10; //khai bao mang int a[n] = {11,22,33,44,55,66,77,88,99,10}; //phan tu can them vao mang int PhanTu = 111; //vi tri can them int index = 7; //goi ham them phan tu truyen vao mang a,vi tri index can them, phan tu can them va va so luong phan tu n cua mang ThemPhanTu(a,index, PhanTu, n); }