注册 登录
编程论坛 C++教室

链表问题,请高手进来下………………………………………………

a632034079 发布于 2010-04-16 10:40, 481 次点击
我想知道加粗的那几句话的详细意义,自己想的总感觉不对劲,请大侠帮帮忙,先谢过了!可以的话,最好能将整个代码解释下………………
这是链表插入操作的代码.

int insnode(SNode *p,ElemType x,int i)
{
    SNode *s,*q;   
    s=new SNode;
    s->data=x;
    if(i<0)
    return (-1);
    else if(i==0) {s->next=q->next; q->next=s;return (0);}
   
    else
    {
        q=get(p,i-1);/*函数调用*/
        if(q) {s->next=q->next; q->next=s; return (i);}

         else return (-1);
    }   
}
1 回复
#2
秀痘魔导士2010-04-16 11:05
程序代码:
int insnode(SNode *p,ElemType x,int i)
{
    SNode *s,*q;  
    s=new SNode;    //new出一个SNode,s保存它的地址
    s->data=x;      //s指向的SNode的data设为x
    if(i<0)        
    return (-1);
    else if(i==0) {s->next=q->next; q->next=s;return (0);}//s的后继结点为q的后继结点,再将q的后继结点置为s,q是新出来的指针,这句话应该是错的,q的地址是编译器分配的,没看懂这行代码有什么任何意义   
    else
    {
        q=get(p,i-1);/*函数调用*/
        if(q) {s->next=q->next; q->next=s; return (i);}

         else return (-1);
    }   
}


[ 本帖最后由 秀痘魔导士 于 2010-4-16 11:07 编辑 ]
1