自定义实现LinkedList
来源:互联网 发布:便宜好用的汽车 知乎 编辑:程序博客网 时间:2024/05/20 21:19
package cn.xz.MyLinkedlist;
/**
* 自定义实现一个LinkedList
* @author 谢樟
*
*/
public class MyLinkedList {
private Node First; //头节点
private Node Last; //尾节点
int size;
MyLinkedList(){ //构造函数
First=new Node(null,null,null);
Last=new Node(null,First,null);
size=0;
}
public int size(){
return size;
}
public void add(Object x){
add(size(),x);
}
public void add(int index,Object value){
addBefore(getNode(index),value);
}
public void addBefore(Node p,Object value){
Node newNode=new Node(value,p.previous,p);
newNode.previous.next=newNode;
p.previous=newNode;
size++;
}
public Node getNode(int index){
Node p=null;
if(index<0||index>size){
System.out.println("下标越界");;
}
if(index<size/2){
p=First.next;
for(int i=0;i<index;i++){
p=p.next;
}
}
else{
p=Last;
for(int i=size;i>index;i--){
p=p.previous;
}
}
return p;
}
public Object get(int index){
Node p=First.next;
for(int i=0;i<index;i++){
p=p.next;
}
return p.element;
}
public Object remove(int index){
Node p=getNode(index);
p.previous.next=p.next;
p.next.previous=p.previous;
return p.element;
}
public static void main(String[] args) {
MyLinkedList linklist=new MyLinkedList();
linklist.add("a");
System.out.println(linklist.get(0));
}
}
class Node{
Object element;
Node previous;
Node next;
Node(Object value,Node pre,Node next){
element=value;
previous=pre;
this.next=next;
}
}
- 自定义LinkedList实现
- 自定义实现LinkedList
- 自定义LinkedList实现
- 自定义实现LinkedList
- 自定义LinkedList
- 自定义LinkedList
- java学习笔记—自定义实现linkedList集合
- LinkedList实现
- LinkedList实现
- LinkedList实现
- LinkedList实现
- 实现LinkedList
- LinkedList实现
- LinkedList实现
- LinkedList实现
- 自定义LinkedList集合
- LinkedList源码解析及自定义LinkedList
- c#自定义LinkedList Queue Stack
- mac shell终端su
- bzoj1725: [Usaco2006 Nov]Corn Fields牧场的安排
- 爱分享 » 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
- PAT (Advanced Level) Practise 1069 The Black Hole of Numbers (20)
- 编译器、链接器、加载器原理
- 自定义实现LinkedList
- nice 转至daovoice
- sitemesh html 本地乱码服务器正常
- Stanford CoreNLP – a suite of core NLP tools
- 258. Add Digits
- java中>,>>,>>> 的区别
- OpenGL Vertex Array
- python 中*args和**kw详解
- PAT (Advanced Level) Practise 1070 Mooncake (25)