顺序表元素删除
删除顺序表中最小的元素,由最后一个元素补充。
示例
输入:3 2 9 5 6
输出:3 6 9 5 6
思路
找出最小值,并保存其下标。遍历数组,当循环到最小值所在下标时,将数组最后一个元素替代最小值,并输出即可。
具体实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[100];
int n=0,x;
while(cin>>x){ //输入数组中的数
a[n++]=x;
if(cin.get() == '\n') break;
}
int i,pos,min=a[0]; //求最小值
for(i=1; i<n; i++){
if(min>a[i]){
min=a[i];
pos=i; //保存最小值下标
}
}
for(int j=0; j<n; j++){
if(j==pos){
a[j]=a[n-1]; //最后一个元素替代最小值
cout<<a[j]<<" ";
}else
cout<<a[j]<<" ";
}
return 0;
}
逆转顺序表中的元素
示例
输入:3 6 2 0 8
输出:8 0 2 6 3
思路
下标翻转输出即可。
具体实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[100];
int n=0,x;
while(cin>>x){ //输入数组中的数
a[n++]=x;
if(cin.get() == '\n') break;
}
for(int j=n-1; j>=0; j--){ //翻转下标输出
cout<<a[j]<<" ";
}
return 0;
}
删除顺序表中为x的元素
示例
输入
3 4 2 1 9
2
输出
3 4 1 9
思路
输入数组a和要删除的数b,遍历数组,若数组中的数与b不相同,则输出,否则继续循环。
具体实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[100];
int n=0,x,b;
while(cin>>x){ //输入数组中的数
a[n++]=x;
if(cin.get() == '\n') break;
}
cin>>b; //输入要删除的数
for(int i=0; i<n; i++){
if(a[i]!=b)
cout<<a[i]<<" ";
}
return 0;
}
小结
数组的基本操作要熟练运用。