Thêm/Xóa phần tử trên mảng một chiều

6

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.

  1. Hướng dẫn Dev-C++ căn bản hoặc  Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012
  2. Lý thuyết Mảng một chiều
  3. Duyệt mảng một chiều
  4. Nhập xuất mảng một chiều

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.

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.

 

nord_crypto_728_90_oktot

6 COMMENTS

  1. [Hàm tìm phần t]:
    Nếu mà trong mảng có hai phần tử muốn tìm thì làm sao ạ?

    [Hàm xóa phần tử]
    Nếu trong mảng có hai phần tử giống nhau mà xóa thì như thế nào ạ?

    • #include “stdafx.h”
      #include
      using namespace std;
      int ktra(int a[], int n,int x)
      {
      for (int i = 0;i<n;i++)
      {
      if (a[i] == x)return i;
      }
      return -1;
      }
      void xoa(int a[], int &n, int x)
      {
      int m;
      int k = ktra(a, n, x);
      if(k!=-1)
      {
      for (int i = k;i> n >> x;
      k = n;
      for (int i = 0;i > a[i];
      }
      m = ktra(a, n, x);
      if (m == -1)cout << "Khong co trong mang.";
      else
      {
      for (int i = 0;i < k;i++)
      {
      xoa(a, n, x);
      }
      for (int i = 0;i < n;i++)
      {
      cout << a[i] << " ";
      }
      }
      system("pause");
      return 0;
      }
      Đây là code xóa phần tử x ( có bao nhiêu x xóa hết) trong mảng và xuất ra mảng mới.

  2. code như ad thì nếu vị cuối cùng của mảng là vị trí cần xóa … thì máy tính sẽ bị bốc khói khi chạy vì không tồn tại giá trị của a[i+1];

LEAVE A REPLY