当前位置: 代码迷 >> C语言 >> 顺序表的一个疑问
  详细解决方案

顺序表的一个疑问

热度:363   发布时间:2007-05-12 22:47:33.0
顺序表的一个疑问
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]。

你再仔细点看看是不是。


----------------解决方案--------------------------------------------------------
不错呀,我看书上就是这么写的哇...
----------------解决方案--------------------------------------------------------

感谢哈!!!


----------------解决方案--------------------------------------------------------
  相关解决方案