双向链表结点插入操作,疑问???

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:57:16
p指向双向链表中的某结点,s指向待插入的新结点,将*s插入到*p的前面,插入操作过程是:
1)s->prior=p->prior;/*让结点s前指针指向,结点p前指针所指向的结点*/
2)p->prior->next=s; 这句实在没看懂,请教
3)s->next=p; /*结点s后指针指向p结点*/
4)p->prior=s; /*结点p前指针指向s结点*/

想问下*s,*p是什么意思啊,是指代结点s,结点p吗?那s,p又是什么意思
我所解释的过程对吗?请高手指导下

*s,*p是s,p所指向的内容,在这里就是指结点s和p,是一个结构体,s,p是指向该结构体(结点)的指针,实际上就是给结构体(结点)的地址.
s->prior=p->prior实际上是让s->prior指向p前面的那个结点(假设为结点K),因为p->prior在插入前是指向K的.
p->prior->next=s是让K的next指向结点s,表示把s插入到K的后面.因为p->prior就是K,p->prior->next就是K->next.
s->next=p使结点s,p连接起来
p->prior=s最后让p的前向指针指向新插入的结点s而不再指向K

s,p是节点指针
*s,*p是节点的实际内容
2)的意思是,通过p->prior找到原来的前节点,并将它的next指针置为你要插入节点的指针