Java记录 -48- Java数据结构-链表
2015-11-01 08:15
267 查看
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。
单向节点Node实例:
单向节点Node实例:
public class NodeTest { public static void main(String[] args){ Node node1 = new Node("node1"); Node node2 = new Node("node2"); Node node3 = new Node("node3"); //构建链表 node1.next = node2; node2.next = node3; System.out.println(node1.next.next.data); //插入一个节点 Node node4 = new Node("node4"); node4.next = node1.next; node1.next = node4; System.out.println(node1.next.next.next.data); } } class Node{ String data; Node next; public Node(String data){ this.data = data; } }双向节点Node类似于单向节点Node,只是在节点声明中多了一个指向前一个节点的指针。
public class NodeTest { public static void main(String[] args){ Node node1 = new Node("node1"); Node node2 = new Node("node2"); Node node3 = new Node("node3"); //构建链表 node1.next = node2; node2.previous = node1; node2.next = node3; node3.previous = node2; node3.next = node1; node1.previous = node3; System.out.println(node1.next.previous.data); //插入一个节点(插入一个节点需要修改四个指针) Node node4 = new Node("node4"); node4.next = node1.next; node1.next.previous = node4; node4.previous = node1; node1.next = node4; System.out.println(node1.next.next.data); } } class Node{ Node previous; String data; Node next; public Node(String data){ this.data = data; } }
相关文章推荐
- 红黑树详解
- 数据结构实验二
- 数据结构实验一(2)
- 数据结构实验一(1)
- [LeetCode] Path Sum 求二叉树中满足要求的路径
- 标准 BT656 并行 数据结构 详解
- Java数据结构与算法之优先级队列
- MySQL索引背后的数据结构及算法原理
- C语言数据结构
- 无向图
- 中国大学MOOC-陈越、何钦铭-数据结构 统计工龄
- 【数据结构与算法】——基数排序
- 【数据结构】队列以及两个队列实现一个栈
- 【数据结构】栈以及两个栈实现一个队列
- 【数据结构】逆波兰表达式
- 【数据结构】一个数组实现两个栈
- 【数据结构】实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 【数据结构】检查元素出栈的合法性
- 【数据结构】用栈实现迷宫
- UVa 1400 "Ray, Pass me the dishes!"(区间最大连续数组和)