肇庆网站上排名,学网站建设培训机构,wordpress手机无法访问,信用南京网站该楼层疑似违规已被系统折叠 隐藏此楼查看此楼2019-08-25链表学习续实现数据内容查询功能interface ILink{//创建一个接口用于定义方法标准//定义增加方法public void add(E e) ;//定义获取元素个数方法public int getLength();//判断是否为空集合public boolean isEmpty();//定…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼2019-08-25链表学习续实现数据内容查询功能interface ILink{//创建一个接口用于定义方法标准//定义增加方法public void add(E e) ;//定义获取元素个数方法public int getLength();//判断是否为空集合public boolean isEmpty();//定义返回链表数据方法(返回数据为数组形式为了通用性类型设置为Object)public Object [] toArray() ;//定义根据索引索取数据public E get(int index) ;//定义修改数据方法public void set(int index, E data) ;//定义数据内容查询功能public boolean contains(E data) ;}class LinkImpl implements ILink{//创建一个子类继承ILink接口private Node root ;Overridepublic void add(E e){if(e null){return ;}Node newNode new Node(e);if(this.root null){this.root newNode ;}else{this.root.addNode(newNode) ;}this.count ;}private int count ;Overridepublic int getLength(){return this.count ;}Overridepublic boolean isEmpty(){if (this.count 0){return true ;}else{return false ;}}private int foot ;private Object [] returnData ;Overridepublic Object [] toArray(){if(this.isEmpty()){throw new NullPointerException(空集合);}this.foot 0 ;this.returnData new Object [this.count] ;this.root.toArrayNode();return this.returnData ;}Overridepublic E get(int index){if(index this.count){throw new ArrayIndexOutOfBoundsException(指定索引不在范围之内);}else{this.foot 0 ;return this.root.getNode(index) ;}}Overridepublic void set(int index, E data){if(index this.count){throw new ArrayIndexOutOfBoundsException(指定索引不在范围之内);}else{this.foot 0 ;this.root.setNode(index,data) ;}}Overridepublic boolean contains(E data){if(data null){return false ;}else{return this.root.containsNode(data) ;}}//-------------------以上为接口子类以下为内部类---------------------------private class Node{//创建内部类用于实现引用关系的处理private E data ;//用于节点保存数据private Node next ;//用于节点的引用关系public Node(E data){//创建节点是保存数据this.data data ;}//保存新的节点数据public void addNode(Node newNode){if(this.next null){this.next newNode ;}else{this.next.addNode(newNode) ;}}public void toArrayNode(){LinkImpl.this.returnData[LinkImpl.this.foot ] this.data ;if(this.next ! null){this.next.toArrayNode() ;}}public E getNode(int index){if(LinkImpl.this.foot index){return this.data ;}else{return this.next.getNode(index) ;}}public void setNode(int index, E data){if(LinkImpl.this.foot index){this.data data ;}else{this.next.setNode(index,data) ;}}public boolean containsNode(E data){if(this.data.equals(data)){return true ;}else{if(this.next null){return false ;}else{return this.next.containsNode(data) ;}}}}}public class LinkDemo{public static void main(String args[]){ILink link new LinkImpl () ;link.add(Hello);link.add(World);link.add(Allan);link.add(Tom);System.out.println(link.getLength()) ;System.out.println(link.isEmpty()) ;link.set(2,你好) ;System.out.println(link.get(2));System.out.println(link.contains(你好));System.out.println(link.contains(2212));}}实现删除链表数据功能interface ILink{//创建一个接口用于定义方法标准//定义增加方法public void add(E e) ;//定义获取元素个数方法public int getLength();//判断是否为空集合public boolean isEmpty();//定义返回链表数据方法(返回数据为数组形式为了通用性类型设置为Object)public Object [] toArray() ;//定义根据索引索取数据public E get(int index) ;//定义修改数据方法public void set(int index, E data) ;//定义数据内容查询功能public boolean contains(E data) ;//定义删除数据功能public void remove(E e) ;}class LinkImpl implements ILink{//创建一个子类继承ILink接口private Node root ;Overridepublic void add(E e){if(e null){return ;}Node newNode new Node(e);if(this.root null){this.root newNode ;}else{this.root.addNode(newNode) ;}this.count ;}private int count ;Overridepublic int getLength(){return this.count ;}Overridepublic boolean isEmpty(){if (this.count 0){return true ;}else{return false ;}}private int foot ;private Object [] returnData ;Overridepublic Object [] toArray(){if(this.isEmpty()){throw new NullPointerException(空集合);}this.foot 0 ;this.returnData new Object [this.count] ;this.root.toArrayNode();return this.returnData ;}Overridepublic E get(int index){if(index this.count){throw new ArrayIndexOutOfBoundsException(指定索引不在范围之内);}else{this.foot 0 ;return this.root.getNode(index) ;}}Overridepublic void set(int index, E data){if(index this.count){throw new ArrayIndexOutOfBoundsException(指定索引不在范围之内);}else{this.foot 0 ;this.root.setNode(index,data) ;}}Overridepublic boolean contains(E data){if(data null){return false ;}else{return this.root.containsNode(data) ;}}Overridepublic void remove(E data){if(this.contains(data)){if(this.root.data.equals(data)){this.root this.root.next ;}else{this.root.next.removeNode(this.root, data) ;}this.count -- ;}}//-------------------以上为接口子类以下为内部类---------------------------private class Node{//创建内部类用于实现引用关系的处理private E data ;//用于节点保存数据private Node next ;//用于节点的引用关系public Node(E data){//创建节点是保存数据this.data data ;}//保存新的节点数据public void addNode(Node newNode){if(this.next null){this.next newNode ;}else{this.next.addNode(newNode) ;}}public void toArrayNode(){LinkImpl.this.returnData[LinkImpl.this.foot ] this.data ;if(this.next ! null){this.next.toArrayNode() ;}}public E getNode(int index){if(LinkImpl.this.foot index){return this.data ;}else{return this.next.getNode(index) ;}}public void setNode(int index, E data){if(LinkImpl.this.foot index){this.data data ;}else{this.next.setNode(index,data) ;}}public boolean containsNode(E data){if(this.data.equals(data)){return true ;}else{if(this.next null){return false ;}else{return this.next.containsNode(data) ;}}}public void removeNode(Node previous, E data){if(this.data.equals(data)){previous.next this.next ;}else{if(this.next ! null){this.next.removeNode(this, data) ;}}}}}public class LinkDemo{public static void main(String args[]){ILink link new LinkImpl () ;link.add(Hello);link.add(World);link.add(Allan);link.add(Tom);System.out.println(link.getLength()) ;System.out.println(link.isEmpty()) ;link.remove(Tom) ;Object [] results link.toArray() ;for(Object obj : results){System.out.println(obj) ;}link.set(2,你好) ;System.out.println(link.get(2));System.out.println(link.contains(你好));System.out.println(link.contains(2212));}}