开服表网站开发,pc官方网站,五百亿网站搬家公司,石龙镇仿做网站一#xff1a;引言
实现的方法 LinkList类都有 自带的 可以直接调用 #xff0c;这是为了熟悉底层代码 敲了一下基本用法 #xff0c;主要以高琪老师讲的来写
二#xff1a;上码
package cn.wyj.two;import java.awt.image.RasterFormatException;/**自定义一个链表* pa…一引言
实现的方法 LinkList类都有 自带的 可以直接调用 这是为了熟悉底层代码 敲了一下基本用法 主要以高琪老师讲的来写
二上码
package cn.wyj.two;import java.awt.image.RasterFormatException;/**自定义一个链表* param args*/public class Demo2_LinkedListE {private Node first;private Node last;private int size 0;public void add(E element)//alt shift R 可以直接改{Node node new Node(element);if(first null){first node;last node;}else{node.previous last;node.next null;//尾插法last.next node;last node;} this.size;}//元素个数public int size(){return this.size;}//删除索引位置元素public void remove(int index){checkRange(index);Node temp getNode(index);if(temp ! null){Node up temp.previous;Node down temp.next;if(up ! null){up.next down;}if(down ! null){down.previous up;}if(index 0){first down;}if(index size-1){last up;}}}//在指定位置插入元素public void add(int index,E element){checkRange(index);Node newNode new Node(element);Node temp getNode(index);if(temp! null){if(index 0){newNode.next first;first.previous newNode;newNode.previous null;first newNode;}if(index size - 1){temp.next newNode;newNode.previous temp;}else{Node up temp.previous;up.next newNode;newNode.previous up;temp.previous newNode;newNode.next temp;} } this.size;}//获取索引位置的元素//a b c d e f g//0 1 2 3 4 5 6 public Object get(int index){checkRange(index);Node temp getNode(index);return temp!null?temp.element:null;}public Node getNode(int index){Node temp null;if(index ( size()1)){temp first;for( int i 0; i index; i ){temp temp.next;} }else{temp last;for( int j size-1; j index; j--){//System.out.println(i);temp temp.previous;}}return temp;}private void checkRange(int index){if(index 0 || index size){throw new RasterFormatException(索引位置不合法index);}}//重写toString()方法public String toString(){StringBuilder sb new StringBuilder();sb.append([);Node temp first;while( temp ! null){sb.append(temp.element、);temp temp.next;}sb.setCharAt(sb.length()-1, ]);return sb.toString();}public static void main(String[] args) {// TODO Auto-generated method stubDemo2_LinkedListString l1 new Demo2_LinkedListString();l1.add(a);l1.add(b);l1.add(c);l1.add(d);l1.add(e);l1.add(f);l1.add(g);System.out.println(l1);System.out.println(l1.size());Object obj l1.get(5);System.out.println(obj);// l1.remove(6);
// System.out.println(l1);l1.remove(3);System.out.println(l1);
// l1.remove(4);
// System.out.println(l1);l1.add(0, 王老二);System.out.println(l1);}}
结点类
package cn.wyj.two;public class Node {Node previous;Node next;Object element;public Node() {super();}public Node(Object element) {super();this.element element;}public Node(Node previous, Node next, Object element) {super();this.previous previous;this.next next;this.element element;}}