【数据结构】Java语言描述-循环链表和双向链表操作
发布时间:2020-12-15 06:34:37 所属栏目:安全 来源:网络整理
导读:算法中常常会涉及循环链表和双向链表这些特殊的链表,对于循环链表来说,从表中任意节点出发均可以找到其他节点,对于循环链表来说唯一的区别是循环结束的条件改为是否指向头指针。本文介绍循环链表和双向链表的一些常用操作的Java实现。 1.单循环链表的查找
算法中常常会涉及循环链表和双向链表这些特殊的链表,对于循环链表来说,从表中任意节点出发均可以找到其他节点,对于循环链表来说唯一的区别是循环结束的条件改为是否指向头指针。本文介绍循环链表和双向链表的一些常用操作的Java实现。 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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |