Computer >> Máy Tính >  >> Lập trình >> C ++

Xóa một phần tử khỏi mảng bằng cách sử dụng hai đường truyền và một đường truyền trong chương trình C ++

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xóa một phần tử có hai vòng lặp và vòng lặp trên. Chúng tôi không cần phải xóa phần tử. Chúng tôi sẽ chỉ thay thế phần tử đang xóa bằng các phần tử tiếp theo.

Hai cuộc giao tiếp

Hãy xem các bước để xóa một phần tử khỏi mảng bằng cách sử dụng hai vòng lặp.

  • Khởi tạo mảng và xóa phần tử.

  • Viết một hàm để xóa phần tử.

    • Lặp lại trên mảng và tìm kiếm phần tử.

    • Nếu phần tử được tìm thấy, hãy phá vỡ vòng lặp.

    • Nếu phần tử được tìm thấy, hãy giảm kích thước của mảng.

    • Di chuyển tất cả các phần tử về chỉ mục trước đó của chúng.

    • Trả về kích thước mới của mảng.

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
using namespace std;
int searchAndDeleteElement(int arr[], int n, int k) {
   int i;
   // searching for the element
   for (i = 0; i < n; i++) {
      if (arr[i] == k) {
         break;
      }
   }
   // if the element is present
   if (i < n) {
      // moving all the elements to previous index after k
      n = n - 1;
      for (int j = i; j < n; j++) {
         arr[j] = arr[j+1];
      }
   }
   // returning updated index
   return n;
}
int main() {
   int n = 6, k = 4;
   int arr[] = {1, 2, 3, 4, 5, 6};
   int updatedLength = searchAndDeleteElement(arr, n, k);
   // printing the array
   for (int i = 0; i < updatedLength; i++) {
      cout << arr[i] << " ";
   }
   cout << endl;
   return 0;
}

Đầu ra

Nếu bạn thực hiện chương trình trên, bạn sẽ nhận được kết quả sau.

1 2 3 5 6

Một lần chuyển giao

Hãy xem các bước để xóa một phần tử khỏi mảng bằng một vòng lặp.

  • Khởi tạo mảng và xóa phần tử.

  • Viết một hàm để xóa phần tử.

    • Lặp lại trên mảng và tìm kiếm phần tử.

    • Nếu phần tử được tìm thấy, hãy bỏ qua câu lệnh.

    • Di chuyển tất cả các phần tử về chỉ mục trước đó của chúng.

    • Nếu phần tử được tìm thấy, sau đó trả về n - 1 khác trả về n.

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
using namespace std;
int searchAndDeleteElement(int arr[], int n, int k) {
   // checking for the last element
   if (arr[n-1] == k) {
      return n - 1;
   }
   bool isElementFound = false;
   for (int i = 0; i < n; i++) {
      // checking for k
      if (arr[i] == k && !isElementFound) {
         isElementFound = true;
         continue;
      }
      // if the element is already found move all the element to their previous indexes
      if (isElementFound) {
         arr[i-1] = arr[i];
      }
   }
   // returning updated n
   if (isElementFound) {
      return n - 1;
   }
   return n;
}
int main() {
   int n = 6, k = 4;
   int arr[] = {1, 2, 3, 4, 5, 6};
   int updatedLength = searchAndDeleteElement(arr, n, k);
   // printing the array
   for (int i = 0; i < updatedLength; i++) {
      cout << arr[i] << " ";
   }
   cout << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, bạn sẽ nhận được kết quả sau.

1 2 3 5 6

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.