Java双链表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java双链表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2410字,纯文字阅读大概需要4分钟。
内容图文
一、概述
二、英雄类
1 class HeroNode { 2 //值域 3 public int id; 4 public String name; 5 public String nickName; 6 //指针域 7 public HeroNode next; 8 public HeroNode prev; 9 10 HeroNode(int id, String name, String nickName) { 11 this.id = id; 12 this.name = name; 13 this.nickName = nickName; 14 } 15 }
三、主方法
1 @Test 2 public void test() { 3 //创建头结点 4 HeroNode head = new HeroNode(-1, null, null); 5 insertNode(head, new HeroNode(1, "松江", "及时雨")); 6 insertNode(head, new HeroNode(2, "武松", "行者")); 7 insertNode(head, new HeroNode(3, "林冲", "豹子头")); 8 printLinked(head); 9 }
四、操作
双链表操作跟单链表相差无几,所以只写了插入和打印操作
1、插入
1 //插入新节点 2 public void insertNode(HeroNode head, HeroNode newNode) { 3 if (head == null) { 4 System.out.println("头结点不能为空"); 5 return; 6 } 7 HeroNode hn = head; 8 //循环到最后一个节点,它的next=null,即hn.next==null 9 while (hn.next != null) { 10 hn = hn.next; 11 } 12 //将hn.next指向新节点 13 hn.next = newNode; 14 //新节点的prev指向hn,即新节点的前一个节点 15 newNode.prev = hn; 16 }
2、打印
1 //打印双向链表 2 public void printLinked(HeroNode head) { 3 if (head == null) { 4 System.out.println("头结点不能为空"); 5 return; 6 } 7 if (head.next == null) { 8 System.out.println("只有头结点,链表无数据"); 9 return; 10 } 11 HeroNode tmp = head; 12 System.out.println("头头头结点:" + convertNode(tmp)); 13 while (tmp.next != null) { 14 System.out.println(show(tmp.next)); 15 tmp = tmp.next; 16 } 17 }
3、打印的辅助方法
1 public String show(HeroNode h) { 2 return "{" + 3 "本节点id=" + convertNode(h) + '\'' + 4 "id=" + h.id + 5 ", name='" + h.name + '\'' + 6 ", nickName='" + h.nickName + '\'' + 7 ", prev=" + convertNode(h.prev) + '\'' + 8 ", next=" + convertNode(h.next) + '\'' + 9 '}' + "\n"; 10 } 11 12 //格式化HeroNode,直接输出地址值 13 public String convertNode(HeroNode h) { 14 return h == null ? null : h.toString().substring(h.toString().lastIndexOf('@')); 15 }
五、结果展示
内容总结
以上是互联网集市为您收集整理的Java双链表全部内容,希望文章能够帮你解决Java双链表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。