【数据结构】Java语言描述-循环链表和双向链表操作
算法中常常会涉及循环链表和双向链表这些特殊的链表,对于循环链表来说,从表中任意节点出发均可以找到其他节点,对于循环链表来说唯一的区别是循环结束的条件改为是否指向头指针。本文介绍循环链表和双向链表的一些常用操作的Java实现。
1.单循环链表的查找操作
public Lnode get(char x){ Lnode p = h.next; while(p!=null&&p.data!=x) p = p.next; if(p.data = x) return p; else return null; }
2.双向链表的节点描述为:
public class DulNode{ char data; DulNode next; DulNode prior; }
3.双向循环链表的插入操作
public int insert(DulNode h,int i,char x){ DulNode p = h.next; int j=1; while(p!=h&&j<i){ j++; p = p.next; } if(j==i){ s = new DulNode(); s.data = x; s.next = p; s.prior = p.prior; p.prior.next = s; p.prior = s; return 1; }else return 0; }
4.双向循环链表的删除操作,删除第i个节点p
public char delete(int i){ DulNode p = h.next; int j = 1; if(p!=h&&j<i){ j++; p = p.next; } if(p!=h){ s = p.data; p.prior.next = p.next; p.next.prior = p.prior; p = null; return s; }else return 0; }
相关推荐
kka 2020-09-14
waitwolf 2020-02-14
alicelmx 2020-02-14
hanyujianke 2020-02-14
xhao 2020-02-14
ding0 2019-11-16
ifwinds 2019-07-01
hanyujianke 2017-11-28
udweagvoer 2017-11-28
TwentySeventh 2017-01-16
HLW0 2018-10-28
Datawhale 2017-11-10
guyuanxiang 2017-09-28
Masimaro 2015-07-20
luoxinyurose 2015-04-22
丁一鸣的CSDN 2013-06-14
ballacklinux 2009-12-29
柯利南 2012-07-19