java双向链接表LinkedList的编写模拟实现
2017-12-13 17:54
609 查看
1.双向链表LinkedList的特点
查询,更改较慢,新增和删除较快。2.代码模拟
public class MyLinkedList { private Node first; private Node last; private int size; class Node { Node prev; Node next; Object ele; Node(Object ele) { this.ele = ele; } } // 添加头元素 public void addFirst(Object ele) { Node node = new Node(ele); if (size == 0) { this.first = node; this.last = node; } else { this.first.prev = node; node.next = this.first; this.first = node; } size++; } // 添加尾元素 public void addLast(Object ele) { Node node = new Node(ele); if (size == 0) { this.first = node; this.last = node; } else { this.last.next = node; node.prev = this.last; this.last = node; } size++; } //删除指定内容的元素,注意:元素个数至少2个以上,否则移除头尾元素会空指针异常 public void remove(Object ele) { Node current = this.first; for (int i = 0; i < size; i++) { if (!ele.equals(current.ele)) { if (current.next == null) { return; } current = current.next; } } if (current == this.first) { this.first = current.next; this.first.prev = null; } else if (current == this.last) { this.last = current.prev; this.last.next = null; } else { current.prev.next = current.next; current.next.prev = current.prev; } size--; } // 获取元素的个数 public int size() { return size; } // 打印链表中的元素 public String toString() { Node current = this.first; StringBuilder sb = new StringBuilder(); sb.append("["); for (int i = 0; i < size; i++) { sb.append(current.ele); if (i != (size - 1)) { sb.append(","); } current = current.next; } sb.append("]"); return sb.toString(); } }
相关文章推荐
- java模拟hashMap实现(linkedList方式)
- 使用java.util.LinkedList模拟实现内存页面置换算法--LRU算法
- [Java]ArrayList与LinkedList的模拟实现
- JAVA容器-模拟LinkedList实现(双链表)
- java模拟LinkedList实现双链表,完成基本操作
- 循环双链表之Java实现(模拟JDK中LinkedList)
- [java数据结构]--java双向链表LinkedList的简单实现
- Data structure-4 双向链表 DoubleLinkedList--Java语言实现
- Java基础课程学习总结,使用LinkedList简单模拟队列数据结构和堆栈数据结构的实现
- java LinkedList类实现 队列
- 用LinkedList模拟队列(Java容器)
- Java(LinkedList) 队列的小实现
- Java用LinkedList实现队列
- 数据结构(Java LinkedList模拟)本代码重在学习数据结构思路,代码完整性欠缺,请见谅
- Doubly linked list的java实现
- Java用LinkedList实现栈
- Java使用Arrays、ArrayList、LinkedList、Vector实现插入查询性能分析
- Java模拟单向链表和双向链表的实现
- java 利用 LinkedList类实现 数据结构 栈.......
- 17-3:用LinkedList模拟(实现)队列