W1103168475 2020-09-16 09:18 采纳率: 0%
浏览 73

对指针在数据结构的->含义不明

在双向循环链表里,到底怎么判断一个它->到底是什么意思,比如所下面这段程序里p->prior->next是什么意思

如下:

void Double Elem(Dulinklist *p ,DataTypr *x)
{ *x=p->data;
p->prior->next=p->next; 
p->next->prior=p->prior; 
free(p); }

这里p->prior->next到底指的是什么意思,如果说是p->prior是指前一个指针的话,那么p->next那么这个为啥就又是指回来了

  • 写回答

3条回答 默认 最新

  • threenewbee 2020-09-16 10:18
    关注

    如果你的程序正确,符合逻辑,那么prior的next指向p。
    p->prior->next=p->next;
    p->next->prior=p->prior;
    的意思是让p的前驱的后驱指向p的后驱(原先指向p,现在跳过p)
    让p的后驱的前驱指向p的前驱,也是跳过p
    从而可以从双链表中删除p

    评论

报告相同问题?