读书人

顺序表读程序的简单有关问题

发布时间: 2011-12-15 23:41:24 作者: rapoo

顺序表读程序的简单问题
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循环的块的范围错了!!

读书人网 >J2SE开发

热点推荐