Java 双向链表模拟

阅读: 评论:0

Java 双向链表模拟

Java 双向链表模拟

单向链表查找只能是一个方向,而双向链表可以向前或向后查找
单向链表不能自我删除,需要靠辅助结点,需要找到待删除节点的前一个节点,而双向链表可以自我删除

class DTeam {int no;String leader;public DTeam(int no, String leader) { = no;this.leader = leader;}@Overridepublic String toString() {return "DTeam{" +"no=" + no +", leader='" + leader + ''' +'}';}
}class DTeamNode {DTeam dTeam;DTeamNode prev;DTeamNode next;public DTeamNode(DTeam dTeam) {this.dTeam = dTeam;}
}class DTeamNodeList {private DTeamNode headNode = new DTeamNode(null);public void add(DTeam newDTeam) {DTeamNode newDTeamNode = new DTeamNode(newDTeam);DTeamNode curNode = headNode; != null) {curNode = ;} = newDTeamNode;newDTeamNode.prev = curNode;}public void addByOrder(DTeam newDTeam) {DTeamNode newDTeamNode = new DTeamNode(newDTeam);DTeamNode curNode = headNode; != null) { == ) {System.out.println("编号已存在,添加失败");return;} > ) {break;}curNode = ;} != null) {prev = newDTeamNode;} = ; = newDTeamNode;newDTeamNode.prev = curNode;}public void update(DTeam newDTeam) {DTeamNode newDTeamNode = new DTeamNode(newDTeam);DTeamNode curNode = ;while(curNode != null) {if( == ) {break;}curNode = ;}if(curNode == null) {System.out.println("改编号不存在,修改失败");return;}curNode.dTeam.leader = newDTeam.leader;}public void deleteNode(int no) {DTeamNode curNode = ;while(curNode != null) {if( == no) {break;}curNode = ;}if(curNode == null) {System.out.println("改编号不存在,删除失败");return;}prev = curNode.prev; = ;}public void listNodes() {DTeamNode curNode = ;while(curNode != null) {System.out.println(curNode.dTeam);curNode = ;}}
}public class DoubleLinkedDemo {public static void main(String[] args) {DTeamNodeList teamNodeList = new DTeamNodeList();DTeam team1 = new DTeam(1, "山本元柳斎重国");DTeam team4 = new DTeam(4, "卯之花烈");DTeam team6 = new DTeam(6, "朽木白哉");DTeam team8 = new DTeam(8, "京乐春水");DTeam team10 = new DTeam(10, "日番谷冬狮郎");DTeam team13 = new DTeam(13, "浮竹十四郎");DTeam team13_new = new DTeam(13, "朽木露琪亚");teamNodeList.add(team1);teamNodeList.add(team4);teamNodeList.add(team6);teamNodeList.add(team13);System.out.println("============add============");teamNodeList.listNodes();
//        Team{no=1, leader='山本元柳斎重国'}
//        Team{no=4, leader='卯之花烈'}
//        Team{no=6, leader='朽木白哉'}
//        Team{no=13, leader='浮竹十四郎'}System.out.println("============addByOrder============");teamNodeList.addByOrder(team8);teamNodeList.listNodes();
//        Team{no=1, leader='山本元柳斎重国'}
//        Team{no=4, leader='卯之花烈'}
//        Team{no=6, leader='朽木白哉'}
//        Team{no=8, leader='京乐春水'}
//        Team{no=13, leader='浮竹十四郎'}System.out.println("============update============");teamNodeList.update(team13_new);teamNodeList.listNodes();
//        Team{no=1, leader='山本元柳斎重国'}
//        Team{no=4, leader='卯之花烈'}
//        Team{no=6, leader='朽木白哉'}
//        Team{no=8, leader='京乐春水'}
//        Team{no=13, leader='朽木露琪亚'}System.out.println("============deleteNode============");teamNodeList.deleteNode(4);teamNodeList.listNodes();
//        Team{no=1, leader='山本元柳斎重国'}
//        Team{no=6, leader='朽木白哉'}
//        Team{no=8, leader='京乐春水'}
//        Team{no=13, leader='朽木露琪亚'}}}

本文发布于:2024-01-28 18:12:41,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064367649303.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:双向   链表   Java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23