【数据结构】删除并返回顺序表中最小值

#include<iostream>

#define Maxsize 50
using namespace std;

typedef struct {
 int *data;
 int length;
}SqList;

bool ListInit(SqList &L){
 L.data = new int[Maxsize];
 
 if (!L.data)
  return false;
 L.length = 0;
 return true;
}

bool ListInsert(SqList &L, int i, int e){
 if(i<1||i>L.length+1)
  return false;
 if(L.length>=Maxsize)
  return false;
 for(int j = L.length;j>=i;j--)
  L.data[j] = L.data[j-1];
 L.data[i-1] = e;
 L.length++;
 return true;
}



int  Getelem(SqList L, int i){
 if (i<1 || i>L.length)
  return -1;
 return L.data[i - 1];;
}

bool Del_Min(SqList &L,int &value){
 if(L.length==0)
      return false;
 value=L.data[0];
 int pos=0;
 for(int i=1;i<L.length;i++)
      if(L.data[i]<value){
       value=L.data[i];
       pos=i;
   }
 L.data[pos]=L.data[L.length-1];
 L.length--;
 return true;
}


int main()
{
 SqList L;
 if (!ListInit(L))
  cout<<"创建失败"<<endl;
 else
  cout << "创建成功"<<endl;;
 /*#######################插入########################*/
 int n, num;
 cout << "插入元素的个数:"<<endl;
 cin >> n;
 cout << "插入数据:"<<endl;
 for (int i = 1;i <= n;i++)
 {
  cin>>num;
  ListInsert(L, i, num);
 }
 /*########################遍历#######################*/
 cout<<"表为:"<<endl;
 for (int i = 1;i <= L.length;i++)
 {
  int temp;
  temp = Getelem(L, i);
  cout<<temp<<" ";
 }
 
 /*########################删除#######################*/

 int value; 
 Del_Min(L,value);
 cout<<endl<<"min is:"<<value<<endl;
 cout<<endl<<"此时表长度为:"<<L.length<<endl;
 cout<<"表为:"<<endl;
 for (int i = 1;i <= L.length;i++)
 {
  int temp;
  temp = Getelem(L, i);
  cout<<temp<<" ";
 }
 return 0;

}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值