#includeiostream #define MAXSIZE 100 using namespace std; typedef struct int elem; 存储空间的基地址 int length; 当前长度 SqList; void InitList_SqSqList& L int n 构造顺序表 Lelem = new intM
代码没有错误,但是存在一个逻辑错误。在删除元素时,需要将后面的元素依次往前移动,但是当前代码中只是将最后一个元素赋值给要删除的元素位置,而没有将后面的元素往前移动。正确的代码应该是:
void DeleteItem(SqList& A, int item) { int k = 0; for (int i = 0; i < A.length; i++) { if (A.elem[i] != item) { A.elem[k] = A.elem[i]; k++; } } A.length = k; }
原文地址: http://www.cveoy.top/t/topic/bleq 著作权归作者所有。请勿转载和采集!