正在加载图片...
【例22】对于含有n个元素的顺序表L,设计一个算法删除 其中第一个值为x的元素,并分析算法的时间复杂度和空间复杂 度。 解:遍历L的元素,若找到值为x的元素L. datai,将其后 面的元素均前移一个位置覆盖以 L datai,并返回true,若找不 到值为x的元素,则返回 false。对应的算法如下 public bool Delaelem(refsqlistClass L, string x) int i=0 while(i<Llength & string Compare(L datai], x)=0) I++ /查找元素x (i>=Llength) 未找到时返回fae return false: else {for(=ij< Llength:j++)将 datai+1之后的元素前移一个位置 data jl=L data lj+1] Llength 顺序表长度减1 return true; ∥功删除返回rue【例2.2】 对于含有n个元素的顺序表L,设计一个算法删除 其中第一个值为x的元素,并分析算法的时间复杂度和空间复杂 度。 解:遍历L的元素,若找到值为x的元素L.data[i],将其后 面的元素均前移一个位置覆盖以L.data[i],并返回true,若找不 到值为x的元素,则返回false。对应的算法如下: public bool Delaelem(ref SqListClassL,string x) { int i=0,j; while (i<L.length && string.Compare(L.data[i],x)!=0) i++; //查找元素x if (i>=L.length) //未找到时返回false return false; else { for (j=i;j<L.length;j++) //将data[i+1]之后的元素前移一个位置 L.data[j]=L.data[j+1]; L.length--; //顺序表长度减1 return true; //成功删除返回true } }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有