可以看这个视频讲解:c语言代码实现考研数据结构课后习题_哔哩哔哩_bilibili
本题代码如下
void deletemin(struct sqlist* s, int* value)
{
if (s->length == 0)
printf("表空\n");
int i = 0;
int min = s->a[0];
int k = 0;
for (i = 1; i < s->length; i++)
{
if (s->a[i] < min)
{
min = s->a[i];
k = i;
}
}
*value = min;
s->a[k] = s->a[s->length - 1];
s->length--;
}
完整测试代码
void deletemin(struct sqlist* s, int* value)
{
if (s->length == 0)
printf("表空\n");
int i = 0;
int min = s->a[0];
int k = 0;
for (i = 1; i < s->length; i++)
{
if (s->a[i] < min)
{
min = s->a[i];
k = i;
}
}
*value = min;
s->a[k] = s->a[s->length - 1];
s->length--;
}
int main()
{
struct sqlist s;
int value;
int j = 0;
s.length = 5;
for (j = 0; j < s.length; j++)
scanf("%d", &s.a[j]);
printf("原先顺序表为:");
for (j = 0; j < s.length; j++)
printf("%d ", s.a[j]);
deletemin(&s, &value);
printf("\n删除后的顺序表为:");
for (j = 0; j < s.length; j++)
printf("%d ", s.a[j]);
printf("\n删除的值为:%d\n", value);
return 0;
}