int ListDelete_Sq(SqList& L, int i, int& e) { // 算法2.5,在顺序线性表L中删除第i个位置的元素,并用e返回其值 // i的合法值为1≤i≤L.length // 请补全代码 if (i<1 || i > L.length) return ERROR; for (int j = i - 1;j <= L.length - 2;j++) { L.elem[j] = L.elem[j + 1]; } L.length--; return OK; }
时间: 2023-06-20 09:05:28 浏览: 484
这是一个删除顺序线性表中第i个位置元素的函数,其时间复杂度为O(n)。
具体而言,该函数首先判断i是否合法,如果不合法则返回ERROR。然后从第i-1个位置开始,将每个元素往前移动一位,最后将表长减1。最后返回OK表示操作成功,并将被删除的元素的值通过e参数返回。
需要注意的是,该函数只是删除了一个元素,并没有释放其占用的空间。如果需要释放空间,可以在删除元素后调用free函数进行释放。
阅读全文
相关推荐




