1. Thao Tác Xóa
Trong mảng một chiều, kích thước mảng đã được khai báo cố định và không thể thay đổi. Khi xóa phần tử trong mảng, mảng vẫn giữ nguyên kích thước ban đầu. Thay vì quản lý N phần tử, ta chỉ cần quản lý N-1 phần tử.
Bạn đang xem: [C++]. Chèn Và Xóa Phần Tử
Bài toán: Cho mảng A[] gồm N phần tử, hãy xóa phần tử thứ K trong mảng.
Ví dụ: A[] = {2, 3, 1, 5, 8, 9, 4} và K = 3. Mảng sau khi xóa sẽ là {2, 3, 1, 8, 9, 4}.
Thuật toán: Dịch các phần tử từ K+1 đến N-1 sang trái. Việc dịch được thực hiện từ trái qua phải. Giảm N đi 1 đơn vị vì đã xóa 1 phần tử trong mảng.
Code:
#include "iostream"
#include "math.h"
using namespace std;
int main(){
int n = 7, k = 3;
int a[7] = {2, 3, 1, 5, 8, 9, 4};
for(int i = k; i < n - 1; i++){
a[i] = a[i + 1];
}
n--;
cout << "Mảng sau khi xóa: ";
for(int i = 0; i < n; i++){
printf("%d ", a[i]);
}
return 0;
}
Output:
Mảng sau khi xóa: 2 3 1 8 9 4
2. Thao Tác Chèn
Khi chèn phần tử vào mảng, cần thêm 1 ô nhớ để lưu phần tử mới. Do đó, khi khai báo mảng ban đầu, cần khai báo thêm vài phần tử.
Bài toán: Cho mảng A[] gồm N phần tử, hãy chèn phần tử có giá trị X vào chỉ số K trong mảng.
Ví dụ: A[] = {2, 3, 1, 5, 8, 9, 4}, X = 100, K = 3. Mảng sau khi chèn sẽ là {2, 3, 1, 100, 5, 8, 9, 4}.
Xem thêm : 14 Nhu cầu thiết yếu của người bệnh mà Điều dưỡng viên nào cũng phải nhớ
Thuật toán:
- Dịch các phần tử từ K đến N-1 sang phải 1 phần tử. Việc dịch được thực hiện từ phải qua trái.
- Gán A[K] = X.
- Tăng N lên 1 đơn vị.
Code:
#include "iostream"
#include "math.h"
using namespace std;
int main(){
int n = 7, k = 3, x = 100;
int a[10] = {2, 3, 1, 5, 8, 9, 4};
for(int i = n - 1; i >= k; i--){
a[i + 1] = a[i];
}
a[k] = x;
n++;
cout << "Mảng sau khi chèn: ";
for(int i = 0; i < n; i++){
cout << a[i] << " ";
}
return 0;
}
Output:
Mảng sau khi chèn: 2 3 1 100 5 8 9 4
Video Bài Tập Mảng 1 Chiều:
Nguồn: https://ispacedanang.edu.vn
Danh mục: Học tập