#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;
}
【数据结构】删除并返回顺序表中最小值
最新推荐文章于 2022-09-13 16:39:59 发布