编写一个算法,实现以较高的效率从有序顺序表A中删除其值在x和y之间x≤A[i]≤y的所有元素。

admin2013-09-16  43

问题 编写一个算法,实现以较高的效率从有序顺序表A中删除其值在x和y之间x≤A≤y的所有元素。

选项

答案逐个检测顺序表中值在x和y之间的元素,并计数于k,再将其值大于y的元素向前移动k个元素。算法描述如下: void DeleteXY(SList*1a,int x,int y) { int k=0: for(int i=0;isize;i++) { if(a_>data[i]>一x&&a->data[i]<=y) k++; else a一>data[i—k]=a一>data[i]; } a一>n=a->n-k;

解析
转载请注明原文地址:https://jikaoti.com/ti/g1ajFFFM
0

最新回复(0)