Java单链表的实现代码
下面是小编给大家分享的一个使用java写单链表,有问题欢迎给我留言哦。
首先定义一个Node类
publicclassNode{ protectedNodenext;//指针域 publicintdata;//数据域 publicNode(intdata){ this.data=data; } //显示此节点 publicvoiddisplay(){ System.out.print(data+""); } }
接下来定义一个单链表,并实现相关方法:
publicclassLinkList{ publicNodefirst;//定义一个头结点 privateintpos=0;//节点的位置 publicLinkList(){ this.first=null; } //插入一个头节点 publicvoidaddFirstNode(intdata){ Nodenode=newNode(data); node.next=first; first=node; } //删除一个头结点,并返回头结点 publicNodedeleteFirstNode(){ NodetempNode=first; first=tempNode.next; returntempNode; } //在任意位置插入节点在index的后面插入 publicvoidadd(intindex,intdata){ Nodenode=newNode(data); Nodecurrent=first; Nodeprevious=first; while(pos!=index){ previous=current; current=current.next; pos++; } node.next=current; previous.next=node; pos=0; } //删除任意位置的节点 publicNodedeleteByPos(intindex){ Nodecurrent=first; Nodeprevious=first; while(pos!=index){ pos++; previous=current; current=current.next; } if(current==first){ first=first.next; }else{ pos=0; previous.next=current.next; } returncurrent; } //根据节点的data删除节点(仅仅删除第一个) publicNodedeleteByData(intdata){ Nodecurrent=first; Nodeprevious=first;//记住上一个节点 while(current.data!=data){ if(current.next==null){ returnnull; } previous=current; current=current.next; } if(current==first){ first=first.next; }else{ previous.next=current.next; } returncurrent; } //显示出所有的节点信息 publicvoiddisplayAllNodes(){ Nodecurrent=first; while(current!=null){ current.display(); current=current.next; } System.out.println(); } //根据位置查找节点信息 publicNodefindByPos(intindex){ Nodecurrent=first; if(pos!=index){ current=current.next; pos++; } returncurrent; } //根据数据查找节点信息 publicNodefindByData(intdata){ Nodecurrent=first; while(current.data!=data){ if(current.next==null) returnnull; current=current.next; } returncurrent; } }
最后我们可以通过测试类来做相关测试:
publicclassTestLinkList{ publicstaticvoidmain(String[]args){ LinkListlinkList=newLinkList(); linkList.addFirstNode(20); linkList.addFirstNode(21); linkList.addFirstNode(19); //print19,21,20 linkList.add(1,22);//print19,22,21,20 linkList.add(2,23);//print19,22,23,21,20 linkList.add(3,99);//print19,22,23,99,21,20 //调用此方法会print19,22,23,99,21,20 linkList.displayAllNodes(); } }
至此,对单链表的操作就笔记到这里了。
以上所述是小编给大家介绍的Java单链表的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!