在一个双向链表中删除p 双链表的插入与删除操作?
双链表的插入与删除操作?
//定义插入:S->prior=P->prior->next=SS->next=PP->prior=S//第一句必须在第四句之前完成,否则*P的前导节点将丢失。Delete:P->prior->next=P->next->prior=P->prior free(P)//绕过P
单链表缺少的2113点是它只能向前移动,而不是5261可以向后移动。虽然有循环单链表,但4102向后走的成本还是很高的1653,需要跑一圈。这时,双向列表应运而生,再加上循环,也就是双向循环列表就更好了。所谓双向链表,就是在前导节点上加一个指针,双向循环链表把最后一个节点的后继指针指向头节点。访问方式:单链表:如果访问任何节点,只能从头到尾访问。单循环链表:您可以从任何节点开始,并从末端访问到任何节点。双向链表:您可以从任何节点开始,并从头到尾访问它。单链表和单循环链表:只能在当前节点之后插入和删除;双链表:可以在当前节点之前或之后插入,并且可以删除以前的趋势和以后的存储(包括节点本身):单链表和单循环链表的存储密度高于双链表
双向链表状态列表的插入操作insert_uudul(DuLinkList&L,int i,ElemType&e){if(!(p=GetElemP_udul(L,i)))返回错误if(!(s=(DuLinkList)malloc(sizeof(DuLNode)))return ERROR s->data=es->prior=p->prior p->prior->next=s->next=p->prior=s return OK}//listinert_udul
访问模式:单链表:如果访问任何节点,每次只能按顺序从头到尾访问单个循环链表:可以从任意节点开始,按顺序访问任意节点双向链表:可以从任意节点开始,任意前后访问。单链表和单循环链表:只能在当前节点后插入和删除双链表。它可以在当前节点之前或之后插入,并删除前向和后续(包括节点自己的)存储。单链表和单循环链表的存储密度高于双链表
在一个双向链表中删除p 双向循环链表删除 双向链表删除节点图示
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。