数据结构王道2.2.3-1

65 阅读1分钟

2.2.3

1.顺序表删除具有最小值的元素(唯一),最后一个元素补上最小值元素的位置;为空,则显示出错信息并且退出运行

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define MaxSize 50
typedef struct SqList {
    int data[MaxSize];
    int length;
}Sqlist;
Sqlist L;

void InitSq(Sqlist& L,int num) {
        int send;
        printf("输入元素:");
        for (int i = 0; i < num; i++) {
                scanf("%d", &send);
                L.data[i] = send;
        }
        L.length = num;
}

void delxElem(Sqlist &L) {
        int min = L.data[0], pos = 0, value=0;
        for (int i=0; i < L.length; i++) {
                if (L.data[i] < min) {
                        pos = i;
                        value = L.data[i];
                }
        }
        L.data[pos] = L.data[L.length - 1];
        L.length--;
}


int main() {
        int num;
        printf("输入数组个数:");
        scanf("%d", &num);
        InitSq(L, num);
        printf("\n");

        for (int i = 0; i < L.length; i++) {
                printf("%d ", L.data[i]);
        }
        printf("\n");
        delxElem(L);


    for (int i = 0; i < L.length; i++) {
                printf("%d ", L.data[i]);
        }
        printf("\n");

        return 0;
}