顺序表的一个疑问
void InsertList(SeqList *L,DataType x,int i){//将新结点 x插入L所指的顺序表的第i个结点ai的位置上
int j;
if (i<1||i>L->length+1)
Error("position error");//非法位置,退出运行
if (L->length>=ListSize)
Error("overflow"); //表空间溢出,退出运行
for(j=L->length-1;j>=i-1;j--)
L->data[j+1]=L->data[j];//结点后移
L->data[i-1]=x; //插入x
L->Length++; //表长加1
}
问题:用红色标注的这两处是不是应该改成j>=i和i啊?
因为说了是在第i个结点出插入的啊.
----------------解决方案--------------------------------------------------------
急需高手解释一下
----------------解决方案--------------------------------------------------------
不能用i。
顺序表是数组data[i],数组是以data[0]打头。
你要找第i个就是要找data[i-1]。
你再仔细点看看是不是。
----------------解决方案--------------------------------------------------------
不错呀,我看书上就是这么写的哇...
----------------解决方案--------------------------------------------------------
感谢哈!!!
----------------解决方案--------------------------------------------------------