s为待插入节点 请写出步骤将s节点插入p节点前面
1 s->prior=p->prior; 这一步是将p的前驱指针地址值赋给s的前驱指针吗?
2 p->prior->next=s; 看不懂
3 s->next=p; 为什么不是s->next=p->prior
4 p->prior=s; 为什么不是 p->prior=s->next
p s prior next四个指针 弄的我要疯了。。。
p->prior->next指向s是什么意思?是指向s里面的所有元素吗?
追答每个节点都有一个首地址,指针是指向s节点的首地址的
是的,意思就是把p节点的前驱节点的地址给s的前驱节点,(大意就是把s插到了p前面,而之前p前面的那个节点应该在s的前面,所以s的前驱应该存储之前p前面的节点的地址)
意思是把 s节点的地址赋给 之前p前面的节点
然后把p的地址给s的后驱(而你所说的那个s->next=p->prior 的意思就变成把插入前p节点的地址给了s的后驱,就变成了s指向的就是插入前p前面的节点了)
最后把s节点的地址赋给了p所指向的前驱节点,彻底完成插入
这个直接理解起来是很抽象的,建议你去好好看一下c语言里面的结构体那一章节,关于结构体的构成,这样对于链表的插入或者删除就很好理解了,不会可以加我qq