数据结构的一道考题,求大神解答。。。

 我来答
memberwin
2015-07-27 · TA获得超过3903个赞
知道大有可为答主
回答量:1000
采纳率:100%
帮助的人:494万
展开全部

基本上是对的,但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条件的最后一个判断应该是你原来的判断,否则应该是上面写的。

 

为实现能插入到队尾,应该是你原来的条件,其余的于上述代码相同。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式