顺序表读程序的简单问题

xiangdeweiwangfengg 2007-05-28 12:45:27
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]下标是如何向后移动的?
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
d289522401 2007-05-29
  • 打赏
  • 举报
回复
我看过这个题确实是你抄错了!你的第一个问题,那里的意思是把前面的那个数的值赋值给后面那个;为了给插入的那个数留位置。第2个表示数组的大小还要加个
biggestfinger 2007-05-29
  • 打赏
  • 举报
回复
晕~~,呵呵,老板,该结账了~~,记得给分哦:)
  • 打赏
  • 举报
回复
................
  • 打赏
  • 举报
回复
我的错,不仔细
  • 打赏
  • 举报
回复
我是从书上搬下来的代码,而且没抄错.....
biggestfinger 2007-05-28
  • 打赏
  • 举报
回复
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循环的块的范围错了!!
  • 打赏
  • 举报
回复
是循环完了以后 size 才自加吗?但是...想不通
qianlei0007 2007-05-28
  • 打赏
  • 举报
回复
for(int j=size;j>i;j--)
{
listArray[j]=listArray[j-1];//第一句
listArray[i]=obj;
size ++; //第二句
}
size++ 对于 j 的初试值没有影响. j的初试值 取决于 size 的初始值...
这个问题数据变量的作用域问题把.. 莫有这样写过代码..

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧