java链表
来源:互联网 发布:大草原上的小老鼠 知乎 编辑:程序博客网 时间:2024/06/15 18:09
1. Node 节点类
/** * 链接点 ,相当于是车厢 */public class Node { // 数据域 public long data; // 指针域 public Node next; public Node(long value){ this.data = value; } /** * 显示方法 */ public void display(){ System.out.println(data +" "); }}
2. 链表类:
public class LinkList { // 定义一个头结点 public Node first; public LinkList() { this.first = null; } // 插入头结点 public void addFirstNode(long data) { Node node = new Node(data); if (first != null) { node.next = first; } first = node; } /** * 尾部 插入 */ public void addEndNode(long data) { Node node = new Node(data); int pos = 0; if (first == null) { first = node; } Node current = first; while (current.next != null) { current = current.next; } current.next = node; } /** * 删除一个头结点,并返回头结点 */ public Node deleteFirstNode() { Node temp = first; first = temp.next; return temp; } /** * 在任意位置插入结点,在index 的后面插入 */ public void add(int index, long data) { Node node = new Node(data); Node current = first; Node previous = first; int pos = 0; while (pos != index) { previous = current; current = current.next; pos++; } node.next = current; if (index == 0) { first = node; } else { previous.next = node; } } /** * 删除任意位置的结点 */ public Node deleteByPos(int index) { int pos = 0; Node previous = first; Node current = first; while (index != pos) { previous = current; current = current.next; pos++; } if (current == first) { first = current.next; } else { previous.next = current.next; } return current; } /** * 通过数据删除结点 */ public Node deleteDyData(int data) { Node current = first; Node previous = first; while (current.data != data) { if (current.next == null) { return null; } previous = current; current = current.next; } if (current == first) { first = current.next; } else { previous.next = current.next; } return current; } /** * 显示出所有结点信息 */ public void displayNodes() { Node current = first; while (current != null) { current.display(); current = current.next; } } /** * 通过位置查找结点信息 */ public Node findByPos(int index) { Node current = first; int pos = 0; if (pos != index) { current = current.next; pos++; } return current; } /** * 根据数据查找节点信息 */ public Node findByData(int data) { Node current = first; while (current.data != data) { if (current.next == null) return null; current = current.next; } return current; }}
阅读全文
0 0
- Java链表
- java 链表
- java链表
- Java 链表
- java链表
- java链表
- java链表
- java链表
- java 链表
- java链表
- Java链表
- Java 链表
- Java 链表
- java 链表
- java链表
- Java链表
- Java链表
- java链表
- Java常用工具类集合(三)
- Excel函数使用(批量数据导入MySql).md
- 云星数据---Scala实战系列(精品版)】:Scala入门教程028-Scala实战源码-Scala 的特质 (接口)04
- 试着发一篇小博客Hello world!
- 闲置电脑?百度搭建挖矿算力租赁平台
- java链表
- MD5和SHA-1的缺陷
- jQuery插件之Form
- 算法15 Continuous Subarray Sum
- 笔记本电脑GHOST重装后就剩一个盘了
- sql执行顺序
- unity鼠标双击
- 关于LINUX权限(启动tomcat)-bash: ./startup.sh: Permission denied
- hbase表的设计