顺序查找的长度length


typedef struct//定义线性表数据项结构
{
    int key;//关键字域
    int otherinfo;
}ElemType;
typedef struct//定义一个线性表结构
{
    int length;//顺序表的长度
    ElemType* R;//顺序表的动态建立,R用于之后动态建立一块连续的存储空间,是建立的存储空间的基地址
}SeqList;

img


为什么ST.length等于11,不应该等于12的吗,不包括最前面的ST.R[0]吗?如果等于12,i=ST.length已经超数组范围了。

这是带头的顺序表,第一个并不包含数据域。

【以下回答由 GPT 生成】

根据给出的代码,ST是一个顺序表,其中length表示顺序表的长度,并不包括最前面的ST.R[0]。这里的length表示的是顺序表中有多少个数据项,而不是数组的长度。

如果想要遍历整个顺序表,可以使用下面的代码片段:

int i;
for (i = 0; i < ST.length; i++) {
    // 遍历顺序表,对每个数据项进行操作
    // 使用ST.R[i]来访问顺序表中的每个数据项
}

这样,就可以正确遍历整个顺序表,不会超出数组范围。

希望以上解答能够帮到您,如果还有其他问题,请随时向我提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^