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单链表的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!