读书人

C 链表解决方法

发布时间: 2012-02-15 12:09:44 作者: rapoo

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;

读书人网 >C++ Builder

热点推荐