順序表之刪除表中元素最小值


 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為標記位置的,主要注意此題用了
參數傳參返回(引用傳參)返回多個值的辦法,函數返回值只能返回一個值,這里注意一下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM