循环链表
来源:互联网 发布:unity3d图文教程 编辑:程序博客网 时间:2024/06/05 21:08
public class Link { public long lData; public Link next; public Link(long lData){ this.lData=lData; } public void displayLink(){ System.out.print(lData+" "); }}
public class CircleList { private Link current; private int nItems; public CircleList(){ current=null; } public void insert(long value){ Link newLink = new Link(value); if(current==null){ current=newLink; newLink.next=newLink; }else{ newLink.next=current.next; current.next=newLink; current=newLink;//插入元素,current要移动要新元素 } nItems++; } public long remove(){ long temp = current.next.lData; if(current.next==current){ current=null; }else{ current.next=current.next.next; } nItems--; return temp; } public long peek(){ return current.next.lData; } public Link find(long value){ Link temp =current; Link result=null; if(current==null){ return result; } do{ step();//从current的下一个元素开始 if(current.lData==value){ result=current; current=temp;//还原current到原来的位置,这样就不会打乱插入的顺序,current指向最后插入的元素 } }while(current!=temp);//current到原来的位置,一周循环结束 return result; } public void step(){ if(current!=null){ current=current.next;// 调用step()方法后,顺序会被打乱 } } public void display(){ if(current!=null){ Link temp =current; do{ step();// 从current的一下个开始显示 System.out.print(current.lData + " "); }while(current!=temp); } System.out.println(); } public boolean isEmpty(){ return (current==null); } public int size(){ return nItems; }}
public class CircleListApp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub CircleList theCircleList = new CircleList(); theCircleList.insert(10); theCircleList.insert(20); theCircleList.insert(40); theCircleList.insert(30); theCircleList.display(); System.out.println("最早插入的元素:"+theCircleList.peek()); Link link = theCircleList.find(40); if(link!=null){ System.out.println("find 40"); }else{ System.out.println("Can't find 40"); } long aLink = theCircleList.remove(); System.out.println("Deleted "+aLink); theCircleList.display(); }}
0 0
- 循环链表实现循环队列
- 循环链表与循环队列
- 循环链表
- 循环链表
- 双向循环链表
- 双向循环链表
- 循环链表实验
- 链表::循环链表
- 双向循环链表
- 双向循环链表
- 循环链表
- 循环链表
- 循环链表
- 循环链表建立
- 数据结构 循环链表
- 双向循环链表
- 循环链表详解
- 循环链表
- trunc
- MFC多媒体定时器与普通定时器的比较
- 2.5.5文档字符串
- js 执行环境及作用域
- dns流程是什么
- 循环链表
- WR703N路由器安装OpenWRT并运行连接校园网
- Http Get和Post区别
- I/O重定向的原理和实现
- mysql数据库FULLTEXT索引的用法和作用
- AS设置自动import 所需要的类包
- ping tracert 用法
- 【struts2】ActionContext与ServletActionContext
- inet_pton, inet_ntop