package linkedlist; /** * @description: * @author: * @time: 2022/1/8 11:03 */ public class SingleLinkedListDemo { public static void main(String[] args) { SingleLinkedList singleLinkedList = new SingleLinkedList(); singleLinkedList.list(); singleLinkedList.add(new HeroNode(1,"宋江","及时雨")); singleLinkedList.add(new HeroNode(2,"卢俊义","玉麒麟")); singleLinkedList.add(new HeroNode(3,"吴用","智多星")); singleLinkedList.add(new HeroNode(7,"高俅","足球先生")); singleLinkedList.list(); singleLinkedList.update(new HeroNode(7,"武松","行者")); singleLinkedList.list(); singleLinkedList.update(new HeroNode(8,"武松","行者")); singleLinkedList.list(); singleLinkedList.addNo(new HeroNode(6,"鲁智深","花和尚")); singleLinkedList.list(); } } class SingleLinkedList{ HeroNode headNode = new HeroNode(0,null,null); public void add(HeroNode newHeroNode){ HeroNode temp = headNode; while (true){ if (temp.next==null){ break; } temp = temp.next; } temp.next = newHeroNode; } public void addNo(HeroNode newHeroNode){ HeroNode temp = headNode; boolean flag = false; while (true){ if (temp.next==null){ break; } if (newHeroNode.no < temp.next.no){ flag = true; break; } temp = temp.next; } if (flag){ newHeroNode.next = temp.next; temp.next = newHeroNode; }else { temp.next = newHeroNode; } } public void list(){ HeroNode temp = headNode; while (true){ if (temp.next==null){ break; } temp = temp.next; System.out.println(temp); } if (temp == headNode){ System.out.println("该列表为空"); } } public void update(HeroNode newHeroNode) { HeroNode temp = headNode; boolean flag = false; while (true){ if (temp.next == null) { break; } if (temp.next.no == newHeroNode.no){ flag = true; break; } temp = temp.next; } if (flag){ temp.next.name = newHeroNode.name; temp.next.nickname = newHeroNode.nickname; }else { System.out.printf("未找到no为%d的成员",newHeroNode.no); System.out.println(); } } public void Delete(int no){ HeroNode temp = headNode; boolean flag = false; while (true){ if (temp.next == null) { break; } if (temp.next.no == no){ flag = true; break; } temp = temp.next; } if (flag){ temp.next = temp.next.next; }else { System.out.printf("未找到no为%d的成员",no); } } } class HeroNode{ int no; String name; String nickname; HeroNode next; public HeroNode(int no, String name, String nickname) { this.no = no; this.name = name; this.nickname = nickname; this.next = null; } @Override public String toString() { return "HeroNode{" + "no=" + no + ", name='" + name + '\'' + ", nickname='" + nickname + '\'' + '}'; } }