使用C++程式中兩次遍歷和一次遍歷從陣列中刪除元素
在本教程中,我們將學習如何使用兩個迴圈和一個迴圈刪除元素。我們不需要實際刪除元素,只需要用後面的元素替換要刪除的元素。
兩次遍歷
讓我們看看使用兩個迴圈從陣列中刪除元素的步驟。
初始化陣列並刪除元素。
編寫一個刪除元素的函式。
遍歷陣列並搜尋元素。
如果找到元素,則中斷迴圈。
如果找到元素,則減小陣列的大小。
將所有元素移動到它們之前的索引。
返回陣列的新大小。
示例
讓我們看看程式碼。
#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;
}輸出
如果您執行上述程式,您將得到以下結果。
1 2 3 5 6
一次遍歷
讓我們看看使用一個迴圈從陣列中刪除元素的步驟。
初始化陣列並刪除元素。
編寫一個刪除元素的函式。
遍歷陣列並搜尋元素。
如果找到元素,則跳過該語句。
將所有元素移動到它們之前的索引。
如果找到元素,則返回 n - 1,否則返回 n。
示例
讓我們看看程式碼。
#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;
}輸出
如果您執行上述程式碼,您將得到以下結果。
1 2 3 5 6
結論
如果您在本教程中有任何疑問,請在評論區提出。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP