順序表之刪除表中元素最小值
阿新 • • 發佈:2018-06-18
出錯 style 引用傳參 clu 信息 刪除 序表 註意 函數
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為標記位置的,主要註意此題用了
參數傳參返回(引用傳參)返回多個值的辦法,函數返回值只能返回一個值,這裏註意一下。
順序表之刪除表中元素最小值