public class SeqList implements List
{
//======忽略部分代码段==========
public void insert(int i,Object obj)thorws Exception
{
if(size==maxsize)
{
thorw new Exception( "列表以满,无法插入 ");
}
if(i <0||i> size)
{
throw new Exception( "参数错误! ");
}
for(int j=size;j> i;j--)
{
listArray[j]=listArray[j-1];//第一句
listArray[i]=obj;
size ++; //第二句
}
}
}
就这2句看不明白。
问题出自:数据结构里的顺序表
问题一:每循环一次 size就自加一次, 复值j=size。然后j--,不是矛盾了吗?
问题二:数组listArray[j]下标是如何向后移动的?
------解决方案--------------------
for(int j=size;j> i;j--)
{
listArray[j]=listArray[j-1];//第一句
listArray[i]=obj;
size ++;//第二句
}
====================================
错了,应该为:
for(int j=size;j> i;j--)
{
listArray[j]=listArray[j-1];//第一句
}
listArray[i]=obj;
size ++;//第二句
你仔细看看,明显你的语句里面是不对的。for循环的块的范围错了!!