本文主要是介绍自己实现LinkedListJAVA103-104,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
来源:http://www.bjsxt.com/
1、S02E103_01自己实现LinkedList
package com.test.linkedlist;/*** 用来表示一个节点*/
public class Node {Node previous;//该节点的前一个节点Object obj;//该节点存放的对象Node next;//该节点的后一个节点public Node(){}public Node(Node previous, Object obj, Node next) {super();this.previous = previous;this.obj = obj;this.next = next;}public Node getPrevious() {return previous;}public void setPrevious(Node previous) {this.previous = previous;}public Object getObj() {return obj;}public void setObj(Object obj) {this.obj = obj;}public Node getNext() {return next;}public void setNext(Node next) {this.next = next;}
}
////////////////////////////////////////
package com.test.linkedlist;public class MyLinkedList {private Node first;private Node last;private int size;public void add(Object obj){Node n = new Node();if(first == null){n.setPrevious(null);n.setObj(obj);n.setNext(null);first = n;//第一个节点last = n;//也是最后一个节点}else{//直接往last节点后增加新的节点n.setPrevious(last);n.setObj(obj);n.setNext(null);last.setNext(n);//之前的last指向下一个节点n(之后的last)last = n;//n为最后一个节点}size++;}public int size(){return size;}public Object get(int index){Node temp = getNode(index);return temp.obj;}//index越界处理public void rangeCheck(int index){if(index < 0 || index >= size){try {throw new Exception();} catch (Exception e) {e.printStackTrace();}}}public Node getNode(int index){//获得相应索引的节点rangeCheck(index);Node temp = null;if(first != null){temp = first;for (int i = 0; i < index; i++) {//遍历节点temp = temp.next;}}return temp;}public void remove(int index){Node temp = getNode(index);if(temp != null){Node up = temp.previous;Node down = temp.next;up.next = down;down.previous = up;size--;}}public void add(int index,Object obj){Node temp = getNode(index);Node newNode = new Node();newNode.obj = obj;if(temp != null){Node up = temp.previous;up.next = newNode;newNode.previous = up;newNode.next = temp;temp.previous = newNode;size++;}}public static void main(String[] args) {MyLinkedList list = new MyLinkedList();list.add("aaa");list.add("bbb");list.add("ccc");
// list.remove(1);list.add(1, "BBB");System.out.println(list.get(1));}
}
这篇关于自己实现LinkedListJAVA103-104的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!