2025王道数据结构19页第二大题01

#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;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值