双向链表
来源:互联网 发布:北京婚恋网络 编辑:程序博客网 时间:2024/06/05 03:19
1. 节点
/** * 链接点 ,相当于是车厢 */public class Node { // 数据域 public long data; // 指针域 public Node next; public Node previous; public Node(long value){ this.data = value; } /** * 显示方法 */ public void display(){ System.out.println(data +" "); }}
2. 链表
public class FirstLastLinkList { // 定义一个头结点 public Node first; // 定义一个尾结点 public Node last; public FirstLastLinkList() { this.first = null; this.last = null; } /** * 判断链表是否为空 */ public boolean isEmpty() { return first == null; } // 插入头结点 public void addFirstNode(long data) { Node node = new Node(data); if (isEmpty()) { last = node; } node.next = first; first = node; } /** * 尾部 插入 */ public void addLastNode(long data) { Node node = new Node(data); int pos = 0; if (isEmpty()) { first = node; }else{ last.next = node; } last = node; } /** * 删除一个头结点,并返回头结点 */ public Node deleteFirstNode() { Node temp = first; if(!isEmpty()){ first = temp.next; } return temp; } /** * 通过数据删除结点 */ 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 if(current == last){ last = previous; previous.next = null; }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
- SzNOI 双向约瑟夫(双向链表)
- 双向链表&&堆栈
- 双向链表
- 使用双向链表
- 双向链表
- 双向循环链表
- 双向循环链表
- 双向链表
- 实现双向链表
- 双向循环链表
- 建立双向链表
- 双向链表
- 双向链表
- 双向循环链表
- 双向链表
- 链表-双向链表
- 双向链表
- 双向动态链表
- Java 8之方法引用(Method References)
- 从15天到2天,让你的销售预测编制时间缩短80%
- PostgreSQL 介绍和安装(一)
- java中如何在eclipse里查看一个接口的所有实现类或一个类的子父级关系?
- OkHttp拦截器(简译)
- 双向链表
- 揭秘命名函数表达式
- maven系列之一maven安装和与IDE集成
- iPhone Xcode打包支持的SDK包文件
- echarts ajax动态调用数据
- windows卸载服务
- 受限玻尔兹曼机(RBM)
- BaseActivity的作用
- VS常见链接问题解决方案大全(LNK1112、LNK2109、LNK1123)