首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

线性表解决思路

2012-04-22 
线性表void Copy(Link &pc,Link pa)//把一个链表的内容复制给另一个链表{Link p,q,rpcnew LNodepc-nex

线性表
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指针    }}    /* 这是一个错误的链表复制函数,它会使新链表里多出一个头节点,        除非调用者在传入参数时故意略去头节点。 */
[解决办法]
探讨

正确的代码怎么写 谢谢

热点排行