单向链表--java实现
来源:互联网 发布:在线ktv唱歌软件 编辑:程序博客网 时间:2024/05/07 04:11
我们都知道,java中自带了许多的数据结构。这些数据结构被封装的很好,使得我们用的很方便,但是我们却不知道这些数据结构具体是怎么实现的。
于是,自己尝试着实现了一个链表。
单向链表示意图:
单向链表实现代码:
public class LinkedList<E> { private class Node<E>{ public E value; public Node<E> next; public Node(E value,Node<E> next) { this.value = value; this.next = next; } } private int size; public Node<E> head; /** * constructor */ public LinkedList() { head = new Node<E>(null, null); head.next = head; size = 0; } /** * 获取链表长度 * @return */ public int size(){ return size; } /** * 判断链表是否为空 * @return */ public boolean isEmpty(){ return size == 0; } public void validateIndex(int index){ if (index < 0 || index >= size) { throw new IndexOutOfBoundsException(); } return; } /** * 从链表头部添加元素 * @param value */ public void add(E value){ Node<E> cur = new Node<E>(value, head.next); head.next = cur; size++; return; } /** * 添加到链表的尾部 * @param value */ public void addLast(E value){ Node<E> node = getNode(size - 1); Node<E> cur = new Node<E>(value, null); node.next = cur; size++; return; } /** * 获取位置index的节点 * @param index * @return */ public Node<E> getNode(int index){ validateIndex(index); Node<E> cur = head.next; for (int i = 0; i < index; i++) { cur = cur.next; } return cur; } /** * 获取位置为index的节点值 * @param index * @return */ public E get(int index){ return getNode(index).value; } /** * 插入一个节点 * @param index * @param value */ public void insert(int index,E value){ validateIndex(index); if (index == 0) { add(value); return; } Node<E> preNode = getNode(index - 1);//插入位置前一个节点 Node<E> node = getNode(index);//插入位置原始的节点,插入后为插入节点的下一个节点 Node<E> cur = new Node<E>(value, node); //准备插入的节点 preNode.next = cur; size++; return; } /** * 删除一个节点 * @param index */ public void delete(int index){ validateIndex(index); if (index == 0) { head.next = head.next.next; size--; return; } Node<E> node = getNode(index - 1); node.next = node.next.next; size--; return; } /** * 删除第一个节点 */ public void deleteFirst(){ delete(0); return; }}
1 0
- java 实现单向链表
- java实现单向链表
- java 单向链表实现
- java实现单向链表
- Java 实现单向链表
- java实现单向链表
- 单向链表--java实现
- java 单向链表实现
- [Java]单向链表实现
- Java 实现单向链表
- java实现单向链表
- JAVA单向链表实现
- java 实现单向链表
- Java实现单向链表
- java实现单向链
- Java 实现链表 单向链表
- java 单向链表的实现
- java如何去实现单向链表
- SharedPreferences保存arraylist集合
- Git基础操作以及常用命令(二)
- 关于检测手机内部存储的方法(以内置存储空间几乎为0M时添加联系人为例)
- sublime3+quick3.5 完整使用教程
- 记一次使用eclipse调试出现的异常
- 单向链表--java实现
- 第二部分:元数据集成体系结构
- 致我们终将绽放的渠道部
- Mybatis - SqlMapConfig.xml , 输入映射 ,输出映射 ,动态sql ,sql片段
- swift 获取类的所有属性、获取对象的属性值、设置对象的属性值
- Android 6.0 运行时权限处理
- 使用RadioGroup做tab切换的变形问题
- 第一部分: 大数据治理统一流程模型概述和明确元数
- JVM体系结构--堆