从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错误信息并退出运行。
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错误信息并退出运行。
参考答案和解析
1)实现删除具有最小值元素的函数。算法的基本设计思想:从前向后遍历线性表用~个变量记录最小值同时用另一个变量记录最小值位置。遍历之后将最小值删除。算法的代码: DataType deleteMin(SeqL 5.st &LDataType &Value) { if(L.n==0) return false; //表空终止操作返回 value=L.data[0]; //假定0号元素的值最小 int ipos=0; for(i=1;i L.n) return false; //表空或者i不合理终止操作 value=L.data[i]; for(int j=i+1;j L.n) return false; //表空或者i不合理终止操作 value=L.data[i]; for(int j=i+1;j L.n) return falSe; //表满或者参数不合理终止操作 for(int J=L.n; J>i;J--) L.data[J]=L.data[J-1]j L.data[i]=value //从第i个位置插入 L.n++; retUrn true ; //insertnoi 4)从顺序表中删除具有给定值X的所有元素。 算法的基本设计思想:从后向前遍历一直找到具有x值的元素然后依次将此后的元素前移。 算法的代码: void deleteValue(SeqLiSt&LDataType value)} int iJ; for(i=L.n-1;i>=0ji--) { //循环寻找具有X值的元素并删除 if(L.data[i]==value) //删除具有x值的元素 { for(J=i+1;J =t) retu.rn false; int ij for(i=L.n-1;i>=0;i--) { //循环寻找在给定范围内的元素并删除它 if(L.data[i]>=s&&L.data[i]<=t) //删除 { for(J=i+1;J =t) return false; int iJku; for(i=0j i =L.n) return false; for(J=i;J L.n) return false for(k=ju=i;k 1)实现删除具有最小值元素的函数。算法的基本设计思想:从前向后遍历线性表,用~个变量记录最小值,同时用另一个变量记录最小值位置。遍历之后将最小值删除。算法的代码:DataTypedeleteMin(SeqL5.st&L,DataType&Value){if(L.n==0)returnfalse;//表空,终止操作返回value=L.data[0];//假定0号元素的值最小inti,pos=0;for(i=1;i L.n)returnfalse;//表空或者i不合理,终止操作value=L.data[i];for(intj=i+1;j L.n)returnfalse;//表空或者i不合理,终止操作value=L.data[i];for(intj=i+1;j L.n)returnfalSe;//表满或者参数不合理,终止操作for(intJ=L.n;J>i;J--)L.data[J]=L.data[J-1]jL.data[i]=value,//从第i个位置插入L.n++;retUrntrue;//insertnoi4)从顺序表中删除具有给定值X的所有元素。算法的基本设计思想:从后向前遍历,一直找到具有x值的元素,然后依次将此后的元素前移。算法的代码:voiddeleteValue(SeqLiSt&L,DataTypevalue)}inti,J;for(i=L.n-1;i>=0ji--){//循环,寻找具有X值的元素并删除if(L.data[i]==value)//删除具有x值的元素{for(J=i+1;J =t)retu.rnfalse;inti,j,for(i=L.n-1;i>=0;i--){//循环,寻找在给定范围内的元素并删除它if(L.data[i]>=s&&L.data[i]<=t)//删除{for(J=i+1;J =t)returnfalse;inti,J,k,u;for(i=0ji =L.n)returnfalse;for(J=i;J L.n)returnfalse,for(k=j,u=i;k
相关考题:
若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是( )。A.查找与给定值相匹配的元素的位置B.查找并返回第i个元素的值(1in)C.删除第i个元素(1in)D.在第i个元素(1in )之前插入一个新元素
长度为l0的顺序表的首地址是从l023开始的,顺序表中每个元素的长度为2,在第4个元素前面插入一个元素和删除第7个元素后,顺序表的总长度还是不变。问在执行插入和删除操作前,顺序表中第5个元素在执行插入和删除操作后在顺序表中的存储地址是( )A.1028B.1029C.1031D.1033
若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是(37)。A.查找与给定值相匹配的元素的位置B.查找并返回第i个元素的值(1≤i≤n)C. 删除第i个元素(1≤i≤n)D.在第i个元素(1≤i≤n)之前插入一个新元素
填空题表长为n的顺序存储的线性表,当在任何位置上删除一个元素的概率相等时,删除一个元素需移动元素的平均次数为()