Trong các bài viết trước chúng ta đã làm quen với các kiến thức về mảng một chiều. Các bạn có thể xem lại các bài viết này ở link bên dưới. Hôm nay chúng ta tiếp tục làm quen với thao tác, thêm, xóa phần tử trên mảng.
Tóm Tắt
Hàm Thêm vào mảng một giá trị x tại vị trí vt (kiểm tra tính hợp lệ của vt)
- Kiểm tra nếu k ∈[0, n] thì:
- Dời các phần tử từ vị trí n-1 đến k lùi lại 1 vị trí.
- Thêm x vào vị trí thứ k của mảng, tăng n thêm 1.
void ThemPhanTu(int a[], int &n, int x, int vt) { if(vt>=0 && vt<=n) { for(int i=n; i>vt; i--) a[i] = a[i-1]; //Dịch các phần tử sang phải 1 vị trí a[vt]=x; //Thêm x vào vị trí vt n++; //Tăng số phần tử lên 1 } else printf("\nVi tri %d khong hop le.", vt); }
Hàm Xóa khỏi mảng một giá trị x
Để xóa một phần tử trong mảng ta phải Kiểm tra nếu x có tồn tại trong mảng thì:
- Dời các phần tử sau x tới 1 vị trí.
- Giảm n bớt 1.
int TimPhanTu(int a[], int n, int x) { for(int i=0; i<n; i++) if(a[i] == x) return i; //Tìm thấy x tại vị trí thứ i return -1; //Không tìm thấy x trong mảng } //======================================================================= void XoaPhanTu(int a[], int &n, int x) { int vt=TimPhanTu(a, n, x); //Tìm vị trí x trong mảng if(vt==-1) printf("\nKhong tim thay phan tu %d muon xoa.", x); else { for(int i=vt; i<=n-2; i++) a[i] = a[i+1]; //Dịch các phần tử sang trái 1 vị trí n--; //Giảm số phần tử bớt 1 } }