表格歸1演算法
發布時間: 2025-05-22 15:43:51
Ⅰ 【數據結構·C語言】請高手幫忙檢查一個關於【鏈表的歸並】演算法是否正確
for(p=&(A.elem[A.length-1]);p>=&(A.elem[i]);p--) *(p+1)=p; 最後的p前面少一個星號,應該改為for(p=&(A.elem[A.length-1]);p>=&(A.elem[i]);p--)*(p+1)=*p;
A.elem[i]=B.elem[k];之後,由於B的元素插在了A的i位置,所以,這之後i應該自加1
for(p=&(A.elem[i+1]);p<=&(A.elem[A.length-1]);p++)*(p-1)=*p;這里是要覆蓋i+1位置的元素,而根據你自己寫的初始條件,p一開始就已經指向i+1位置,因此需要修改,同時伴隨修改結束條件,最終修改為for(p=&(A.elem[i+1]);p<&(A.elem[A.length-1]);p++)*p=*(p+1);
其他的都還好。
PS,如果想程序運行簡單一點,建議你每歸並一個B的元素到A就查找一遍A中的元素,但是程序就會麻煩一點,還有,對A的重復元素的自檢,可以考慮把if寫為while,因為考慮到又可以能連著三個以上的元素相等。
希望採納,期待對你有幫助,歡迎追問^_^
熱點內容