#include<stdio.h>
#define maxsize 10
//静态顺序表的定义
typedef struct{
int data[maxsize];
int length;
}SqList;
//初始化静态顺序表
void InitList(SqList &L){
for(int i=0;i<maxsize;i++){
L.data[i]=0;
}
L.length=0;
}
//创建顺序表
void CreateList(SqList &L){
int num;
printf("请输入要往顺序表中加入的整数(输入9999退出):");
while(scanf("%d", &num) == 1 && num != 9999 && L.length < maxsize) //第一个判断是不是输入一个整数
{
L.data[L.length++] = num;
printf("顺序表的长度是:%d\n", L.length);
printf("剩余位置的数量:%d\n", (maxsize - L.length));
printf("请输入要往顺序表中加入的整数(输入9999退出):");
}
}
//遍历静态顺序表
void TravelList(SqList &L){
for(int i=0;i<L.length;i++){
printf("%d ",L.data[i]);
}
printf("\n");
}
//删除最小的元素并把最后一个元素往前放
int DeleteMin(SqList &L,int &e){
if(L.length==0){
return -1;//如果长度是0,返回-1代表顺序表为空
}
e=L.data[0];
int position=0;//记录最小值的数组下标
for(int i=1;i<L.length;i++){
if(e>L.data[i]){
e=L.data[i];
position=i;
}
}
L.data[position]=L.data[L.length-1];//把最后一个数移动到删除的位置
L.length-=1;//表长减一
return e;
}
int main()
{
SqList L;
InitList(L);
CreateList(L);
printf("静态顺序表遍历的结果是:");
TravelList(L);
int e;
printf("列表中唯一的最小的数是:%d(如果是-1代表表长是0)",DeleteMin(L,e));
printf("删除后静态顺序表遍历的结果是:");
TravelList(L);
return 0;
}
2025王道数据结构19页第二大题01
最新推荐文章于 2024-10-09 10:30:23 发布