顺序表之删除表中元素最小值
Posted yjm5
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序表之删除表中元素最小值相关的知识,希望对你有一定的参考价值。
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为标记位置的,主要注意此题用了
参数传参返回(引用传参)返回多个值的办法,函数返回值只能返回一个值,这里注意一下。
以上是关于顺序表之删除表中元素最小值的主要内容,如果未能解决你的问题,请参考以下文章
线性表练习之Example021-删除顺序表中的最后一个元素
数据结构1.从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行