懂C的朋友帮帮忙..链表中,设指针p指向双链表中某结点,则p->prior->next ==...

2024-12-22 22:47:24
推荐回答(2个)
回答1:

首先说说双向链表吧,链表其实就是愈多结构体链在一起,怎么链的呢,这里就用到了指针。双项链表的的每个节点都是一个结构体,而每个结构体里包含数据成员和地址成员,数据成员就是我们看到的一些信息数据,地址成员就是存着两个指针,一个指向前一个节点(既p->prior),一个指向后一个节点(既p->next)。p->prior->next =p->next ;p->next ->prior =p->prior ;free (p);这几句话的理解就是,让当前节点(p)前一个节点(p->prior)中存的指向下一个节点的地址(p->prior->next)指向当前节点的下一个(p->next),让当前节点(p)下一个节点(p->next)中存的指向前一个节点的地址(p->next ->prior)指向当前节点的前一个(p->prior ),然后在释放当前的节点(free (p)),这样就达到了删除节点p的目的。
说的有点啰嗦,不知道你能不能看懂!!!

回答2:

p->prior->next ==指的事P的前趋节点的后继节点不是P自身?就相当于你前面的那个人的后面不是你自己么?p->prior->next =p->next这句是把p的后继节点的地址值赋给p的前趋节点的next域。p->next ->prior =p->prior这个是把p的前趋节点的地址赋值给p的后继节点的prior
打个比方就是你如果是p,你就告诉你前面那个人,你后面的人在哪,然后再告诉你后面的人你前面的人在哪。free(p)是回收p。就是你自己离开