每日学习---18.5.3

数据结构----链表

实现语言  Java

目标:实现  链表  

1.add() a .根据  索引 添加到指定位置  b .添加一个数据与链表尾部

2.remove() 根据索引  或者  值删除一个链表中的元素

3.set()

主类    LeeLinkedList

二类        Node

public class Node {
Node previous;
Object object;
Node next;
public Node() {
// TODO Auto-generated constructor stub
}
public Object getObject() {
return object;
}
public void setObject(Object object) {
this.object = object;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public void setPrevious(Node previous) {
this.previous = previous;
}
public Node(Node previous,Object object,Node next) {
super();
this.previous=previous;
this.object=object;
this.next=next;
}
Object getPrevious() {
return previous;
}
}
/*
上面定义链表中的结点
*/
import javax.xml.transform.Templates;
public class LeeLinkedList {
private Node first;
private Node last;
private int size;
public void add(Object object) {
if(first==null) {
Node node =new Node();
node.setPrevious(null);
node.setObject(object);
node.setNext(null);
first=node;
last=node;
}else {
Node node=new Node();
node.setPrevious(last);
node.setObject(object);
node.setNext(null);
last.setNext(node);
last=node;
}
size++;
}
private void rangeCheck(int index) {
if(index<0||index>=size) {
try {
throw new Exception();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
public Object get (int index) {
rangeCheck(index);
if (first==null) {
return 0;
}else {
Node temp=first; 
for(int i=0;i<index;i++) {
temp=temp.next;
}
return temp.object;
}


}
public void remove(int index) {
Node temp=node(index);
rangeCheck(index);

if(temp!=null) {
Node upNode=temp.previous;
Node downNode=temp.next;
upNode.next=downNode;
downNode.previous=upNode;
size--;
}

}
public void add(int index,Object object) {
Node temp=node(index);
rangeCheck(index);
Node newNode=new Node();
newNode.object=object;
if(temp!=null) {
Node upNode=temp.previous;
upNode.next=newNode;
newNode.previous=upNode;
newNode.next=temp;
temp.previous=newNode;
size++;


  }

}
public int size() {
return size;
}
public Node node(int index) {
Node temp=null;
if(first!=null) {
temp=first;
for(int i=0;i<index;i++) {
temp=temp.next;
}
}
return temp;
}
public static void main(String[] args) {
LeeLinkedList list =new LeeLinkedList();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("bbb");
list.add(2, "BBB");
System.out.println(list.get(2));
System.out.println(list.get(1));
list.remove(1);
System.out.println(list.get(1));

}
}


猜你喜欢

转载自blog.csdn.net/qq_41284464/article/details/80217068