数据结构的一道考题,求大神解答。。。
1个回答
展开全部
基本上是对的,但i不能等于s->last+2,所以开始的if条件要改下:
int insert_seqlist(seqlist *s, int i, int x)
{
int k;
if(s->last>=MAX-1 || i<1 || i>s->last+1)
return 0;
for(k=s->last+1; k>=i; k--)
s->data[k]=s->data[k-1];
s->data[k]=x;
s->last +=1;
return 1;
}
又想了下,貌似i应该需要能取到s->last+2,否则无法实现插入到队尾的功能,这样就引出一个问题,所谓在顺序表的第i个位置插入x中的第i个位置是插入前的第i个位置还是插入后的第i个位置,如果是后者则if条件的最后一个判断应该是你原来的判断,否则应该是上面写的。
为实现能插入到队尾,应该是你原来的条件,其余的于上述代码相同。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询