顺序表
1. 从顺序表中是删除最小元素,并返回该元素的值空出位置由最后一位填充。
bool Delete_min(sqList &L, ElemType &value){
if(L.length<=0){
//表为空,直接返回
return false ;
}
value=L.data[0];
int pos=0;
for(int i=0;i<L.length;i++){
//找到最小值后,记录数据和位置
if(L.data[i]<value){
pos = i;
value = L.data[i];
}
}
L.data[pos]=L.data[L.length-1];
L.length--;//将最后一位填补到pos后,最后一位就不用了
return true;
}
2. 将顺序表L所有元素逆置,并要求算法空间复杂度为O(1)。
//由于限制了空间复杂度,所以不能创建新的线性表用来逆向存储
//直接设置起点和终点两个标志位,在原数组的基础上交换
void Reverse(sqList &L){
int i=0;
int j=L.length-1;
ElemType temp=0
for(;i>=j;i++,j++){
temp