顺序表之删除表中元素最小值

 1 #include<stdio.h>
 2 #define MAX 10//表的长度为10
 3 typedef int ElementType;
 4 int length=0;
 5 int value,pos;//记录值和位置
 6 typedef struct {
 7     ElementType i; 
 8     int length;
 9     ElementType data[MAX];
10 }Sorder;
11 //主要删除最小值的函数代码 ,由此可见删除了最小值1,位于数组0的位置 
12 bool Del_Min(Sorder &L,int &value){
13     if(L.length==0)
14         return false;
15         value=L.data[0];
16          for(int i=0;i<=L.length;i++){
17              if(value>L.data[i+1]){
18                  value=L.data[i+1];
19                  pos=i;
20         }
21     }
22     L.data[pos]=L.data[length-1];
23     return true;
24 }
25 int main(){
26     Sorder L;
27     //循环将0-10是个数存放到数组中 
28     for(int i=0;i<MAX;i++){
29         L.data[i]=i+1;
30         L.length++;
31     }
32     Del_Min(L,value);//函数调用,注意是L,value 
33     printf("%d",pos); 
34     return true; 
35 }

王道第二章练习题第一题
题目:从顺序表中删除具有最小值的元素,假设唯一,并由函数返回被删元素的值,空出的位置由最后一个元素填补,
若顺序表为空则显示出错信息并退出运行。
算法思想:本题主要思想就是搜索整个顺序表,查找最小值元素并记住它的位置,pos为标记位置的,主要注意此题用了
参数传参返回(引用传参)返回多个值的办法,函数返回值只能返回一个值,这里注意一下。

 

转载于:https://www.cnblogs.com/yjm5/p/9194069.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值