java实现循环单链表

来源:互联网 发布:淘宝聘用店主 编辑:程序博客网 时间:2024/06/06 12:59
java中只能用类实现数据结构的功能
class cnode{//循环单链表private Object data;//定义数据域private cnode nextcnode;private cnode head=null;public Object getData() {return data;}public void setData(Object data) {this.data = data;}public cnode getNextcnode() {return nextcnode;}public void setNextcnode(cnode nextcnode) {this.nextcnode = nextcnode;}public void initcyclelist(){//循环链表初始化head = new cnode();//head.setData(data);head.setNextcnode(head);}public void insert(Object data){//插入结点//新建一个结点cnode node=new cnode();//结点中放入数据node.setData(data);//指针if(head==head.getNextcnode()){//只有头结点head.setNextcnode(node);node.setNextcnode(head);}else{//不止一个结点//创建临时结点(作用相当于指针,指向头结点)cnode c=head;//遍历循环链表,找到最后一个结点,再插入while(head!=c.getNextcnode()){c=c.getNextcnode();}//找到最后一个结点//c结点的下一个结点设置为nodec.setNextcnode(node);//node的下一个结点设置为头结点node.setNextcnode(head);}}public void print(){//输出循环链表的值cnode c= head;while(head!= c.getNextcnode()){System.out.println(c.getData());c=c.getNextcnode();}//循环退出后,还有一个结点的值没有输出System.out.println(c.getData());}}public class Testcnode {public static void main(String[] args) {cnode testcnode= new cnode();testcnode.initcyclelist();testcnode.insert(2);testcnode.insert(3);testcnode.insert(2);testcnode.insert(4);testcnode.print();}}

运行结果:

null2324
其中null是头结点