java实现双向链表
来源:互联网 发布:python java socket 编辑:程序博客网 时间:2024/05/16 01:56
利用java实现 带有头节点 尾节点的双向链表,以及基本的方法实现
/** * Created by pandap on 2017/8/4. * 双向链表的java实现 */public class MyList<T> { /* 内部节点类 */ private class Node<T>{ public Node<T> pre; public Node<T> next; public T data; public Node(){ this.data = null; this.next = null; this.pre = null; } public Node(T data,Node pre, Node next){ this.data = data; this.pre = pre; this.next = next; } } //链表的属性 大小 头节点 尾节点 private int size; private Node<T> header; private Node<T> tail; //初始化链表 public MyList(){ this.size = 0; header = new Node<T>(null,null,null); tail = new Node<T>(null,header,null); header.next = tail; if(header == null){ System.out.println("header is null"); } if(tail == null){ System.out.println("tail isi null"); } }//添加元素 public void add(T item){ Node<T> newNode = new Node(item,null,null); tail.pre.next = newNode; newNode.pre = tail.pre; newNode.next = tail; tail.pre = newNode; size++; }//判空 public boolean isEmpty(){ return size == 0; } public int size(){ return size; }//获取某个节点 public T get(int idx){ if(idx >= size || idx < 0){ throw new IndexOutOfBoundsException(); } Node current = header; for(int i=0; i<=idx; i++){ current = current.next; } return (T)current.data; }//输出链表 public void print(){ Node<T> current = header.next; while(current.next != null){ System.out.println(current.data.toString()); current = current.next; } }// 测试 public static void main(String[] args) { MyList<String> strs = new MyList<String>(); strs.add("first"); strs.add("second"); strs.add("three"); System.out.println("size :" + strs.size); strs.print(); System.out.println(strs.get(0)); }}测试结果
阅读全文
1 0
- JAVA实现双向链表
- JAVA实现双向链表
- Java实现双向链表
- JAVA实现双向链表
- JAVA实现双向链表
- JAVA实现双向链表
- 【java】双向链表实现
- Java双向链表实现
- 双向链表 --java实现
- JAVA实现双向链表
- JAVA实现双向链表
- Java实现双向链表
- java实现双向链表
- java实现双向链表
- Java实现双向链表
- Java实现双向链表
- Java双向链表实现
- java实现双向链表
- eclipse配置JDK和设置编译版本的几种方法
- SCU
- 存储优化
- 习题 4.8 给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为’E‘。
- JavaScript作用域
- java实现双向链表
- 1004 度度熊的午饭时光<01 背包>
- 杭电暑期多校集训—RXD and dividing
- C语言炫酷输出
- DevExpress Widget AutoSize
- brew cask install 解决慢的问题
- python学习之路-基础篇-day06
- 【简单枚举】HDU4858项目管理【BestCoder Round #1】
- Educational Codeforces Round 26 ABC题