标签:Dlink void next 链表 prior 双向 Dnode delete
建表
typedef struct Dnode { int data; Dnode *prior; Dnode *next; }*Dlink; Dlink p,q,s,H; void D_init(Dlink &L) { L = new Dnode; L->next = L; L->prior = L; }
插入
void D_insert(Dlink &L,int x)//在首位插入 { s = new Dnode; s->data = x; s->prior = L; L->next->prior = s; s->next = L->next; L->next = s; }
删除
void D_delete(Dlink &L,int x)//找到与x值相等的数并删除,若没有则忽略 { p = L->next; while(p && p != L) { if(p->data == x) { p->next->prior=p->prior; p->prior->next=p->next; delete(p); break; } p = p->next; } }
删除第一个/最后一个
void D_deleteFirst(Dlink &L) { p = L->next; L->next->next->prior = L; L->next = L->next->next; delete(p); } void D_deleteLast(Dlink &L) { p = L->prior; L->prior = p->prior; p->prior->next = L; delete(p); }
标签:Dlink,void,next,链表,prior,双向,Dnode,delete 来源: https://www.cnblogs.com/Cindy-Chan/p/11182033.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。