单向链表查找只能是一个方向,而双向链表可以向前或向后查找
单向链表不能自我删除,需要靠辅助结点,需要找到待删除节点的前一个节点,而双向链表可以自我删除
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小时内删除。
留言与评论(共有 0 条评论) |