bool ListDelete(SeqList *L,int i,ElemType *e){ if(i<1||i>L->length) return false; int b=0; b=L->data[i-1]; e=&b; int j=0; for( j=i;j<L->length;j++) L->data[j-1]=L->data[j]; L->length--; return true; }
时间: 2024-04-12 11:33:29 浏览: 19
这段代码是用于删除顺序表中指定位置的元素的函数。首先,它会检查要删除的位置i是否合法,即是否小于1或大于顺序表的长度。如果位置不合法,则返回false表示删除失败。然后,它会声明一个整型变量b,并将要删除的元素的值赋给b,即b = L->data[i-1]。接着,它将b的地址赋给指针e,即e = &b,这样可以通过指针e将删除的元素值传递给调用者。然后,它使用循环将位置i后面的所有元素向前移动一位,将第j个元素的值赋给第j-1个元素,覆盖掉要删除的元素。最后,它将顺序表的长度减1,并返回true表示删除成功。需要注意的是,该代码存在一个问题,即在函数结束后,指针e指向的内存空间会被释放,导致调用者无法正确获取删除的元素值。应该将参数e改为指针类型,即ElemType **e,然后使用 *e = b 的形式进行赋值。
相关问题
bool InputSeqList(SeqList *L) { int i; for (i = 0;; i++) { scanf_s("%c", L->data[i]); L->length++; if (L->data[i] == 0) break; } return true; }
这段代码是用来输入顺序表的,但是有一些问题。
首先,scanf_s()函数的参数应该是一个指针,但是代码中传入的是L->data[i],这是不正确的。
其次,输入的终止条件应该是输入的字符为'\0',但是代码中使用的是0,这也是不正确的。
最后,应该在输入完最后一个字符后再将顺序表的长度加1,否则会出现错误的长度。
正确的代码应该是这样的:
```
bool InputSeqList(SeqList *L) {
int i;
for (i = 0;; i++) {
scanf_s("%c", &(L->data[i]));
if (L->data[i] == '\0')
break;
L->length++;
}
return true;
}
```
bool InputSeqList(SeqList *L) { int i; for (i = 0;; i++) { scanf_s("%c", &(L->data[i])); if (L->data[i] == 'end') break; L->length++; } return true; }
这段代码也是用来输入顺序表的,但是同样有一些问题。
首先,scanf_s()函数的参数应该是一个指针,但是代码中传入的是&(L->data[i]),这是正确的。
其次,输入的终止条件应该是输入的字符串为"end",但是代码中使用的是'L->data[i] == 'end'',这也是不正确的。应该使用strcmp()函数来比较输入的字符串和"end"是否相同。
最后,应该在输入完最后一个字符串后再将顺序表的长度加1,否则会出现错误的长度。
正确的代码应该是这样的:
```
bool InputSeqList(SeqList *L) {
int i;
for (i = 0;; i++) {
scanf_s("%s", &(L->data[i]));
if (strcmp(L->data[i], "end") == 0)
break;
L->length++;
}
return true;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)