《Java数据结构》链表结构(单向链表,双向链表)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《Java数据结构》链表结构(单向链表,双向链表),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2159字,纯文字阅读大概需要4分钟。
内容图文
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;
单向链表:
/** * 单向链表 */ public class ListNode { Integer val; ListNode next; // 下一个节点 public ListNode(Integer x) { val = x; } }
/** * 创建一个单向链表结构 * 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 */ public class ListDemo { public static void main(String[] args) { // 创建链表 ListNode listNodeTmp = new ListNode(-1); ListNode listNodeStart = listNodeTmp; for (int i = 1; i < 10; i++) { ListNode listNode = new ListNode(i); listNodeTmp.next = listNode; listNodeTmp = listNode; } //打印链表 ListNode listNodeQuery = listNodeStart.next; //listNodeQuery相当于指针,指向哪个节点 StringBuilder stringBuilder = null; while(listNodeQuery !=null){ //指向位置是否为空if(stringBuilder == null){ stringBuilder = new StringBuilder(); stringBuilder.append(listNodeQuery.val); }else{ stringBuilder.append(" -> "+ listNodeQuery.val); } listNodeQuery = listNodeQuery.next; // 指向下一个节点 } System.out.println(stringBuilder.toString()); } }
运行结果:
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
双向链表:
public class DoubleListNode { Integer val; DoubleListNode next; // 下一个节点 DoubleListNode pro; //上一个节点public DoubleListNode(Integer x) { val = x; } }
/** * 创建一个双向向链表结构(1 指向 2 的同时2 也指向 1) * 1 <-> 2 <-> 3 <-> 4 <-> 5 <-> 6 */ public class DoubleListDemo { public static void main(String[] args) { // 创建链表 DoubleListNode doubleListNodeTmp = new DoubleListNode(-1); DoubleListNode doubleListNodeStart = doubleListNodeTmp; for (int i = 1; i < 10; i++) { DoubleListNode doubleListNode = new DoubleListNode(i); doubleListNodeTmp.next = doubleListNode; doubleListNode.pro = doubleListNodeTmp; doubleListNodeTmp = doubleListNode; } DoubleListNode doubleListNodeQuery = doubleListNodeStart.next.next.next; //指向3的位置 //获取自身 System.out.println("节点自身:"+doubleListNodeQuery.val); //获取上一个节点. System.out.println("上一个节点:"+doubleListNodeQuery.pro.val); //获取下一个节点. System.out.println("下一个节点:"+doubleListNodeQuery.next.val); } }
运行结果:
原文:https://www.cnblogs.com/jssj/p/11644125.html
内容总结
以上是互联网集市为您收集整理的《Java数据结构》链表结构(单向链表,双向链表)全部内容,希望文章能够帮你解决《Java数据结构》链表结构(单向链表,双向链表)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。