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

C 链表解决方法

2012-02-15 
C 链表void delete_lklist(lklist head:int i){if((p!null)&&(p-next!null)){qp-nextp-nextq-nex

C 链表
void delete_lklist(lklist head:int i)
{
  if((p!=null)&&(p->next!=null))
  {
  q=p->next;
  p->next=q->next;
  free(q);
  }
  else error('!');
}


q=p->next;
p->next=q->next;
上面这两句是什么意思,请各位帮下忙.因为自学.希望有人指点下.先谢谢了.

QQ:303752527

[解决办法]
q=p->next;//p的下一个,给了q
p->next=q->next;//q的下一个给了p的下一个
[解决办法]
交换地址。。。
[解决办法]
由于只是根据你的函数名字delete_lklist(lklist head:int i),来猜测的。
你的
p和q的类型可能是 Tlist.

一般 next指的是当前指针的下一个
[解决办法]
if((p!=null)&&(p->next!=null))
保证p和p->next都不为空,因为下面将删除p的下一个节点,有点像带头结点的先进先出队列
q=p->next;//先得到p的下一个结点,就是要删除的结点
p->next = q->next; //将结点p指向要删除结点的下一个结点,保证不会断链,也可以使用
p->next = p->next->next;

热点排行