读书人

线性表解决思路

发布时间: 2012-04-22 18:34:46 作者: rapoo

线性表
void Copy(Link &pc,Link pa)//把一个链表的内容复制给另一个链表
{
Link p,q,r;
pc=new LNode;
pc->next=NULL;
r=pc;
p=pa;

while(p->next!=NULL)
{
q=new LNode;
q->data.coef=p->next->data.coef;
q->data.exp=p->next->data.exp;
r->next=q;
q->next=NULL;
r=q;
p=p->next;
}
}


请解释一下每个语句的意思 谢谢

[解决办法]

C/C++ code
void Copy(Link &pc,Link pa)//把一个链表的内容复制给另一个链表{    Link p,q,r;    //  一堆临时变量    pc=new LNode;  //  为新链表申请一个头节点    pc->next=NULL; //  完善头节点    r=pc;          //  r指向新表头    p=pa;          //  p指向老表头    while(p->next!=NULL)  //  若老表非空则循环    {        q=new LNode;      //  准备一个新节点        q->data.coef=p->next->data.coef;  //  复制节点数据        q->data.exp=p->next->data.exp;    //  同上        r->next=q;        //  将新节点连入新表中        q->next=NULL;     //  完善新节点        r=q;              //  推进r指针        p=p->next;        //  推进p指针    }}    /* 这是一个错误的链表复制函数,它会使新链表里多出一个头节点,        除非调用者在传入参数时故意略去头节点。 */
[解决办法]
探讨

正确的代码怎么写 谢谢

读书人网 >C++

热点推荐