java简单实现链表
来源:互联网 发布:linux sprintf函数 编辑:程序博客网 时间:2024/05/22 15:49
package link_data;public class Link {private int count = 0;//计数器private Node root;//头节点//////////////////////内部类 startprivate class Node{private String data;private Node next;public Node(String data)//初始化数据点{this.data = data;}public void addNode(Node newNode){//添加数据点if(this.next == null)this.next = newNode;elsethis.next.addNode(newNode);}public boolean containsNode(String data)//判断该数据是否存在{if(data.equals(this.data)){return true;}else{if(this.next != null)return this.next.containsNode(data);elsereturn false;}}public void removeNode(Node previous,String data){if(this.data.equals(data))previous.next = this.next;elsethis.next.removeNode(this, data);}public void toArrayNode(){Link.this.retData[Link.this.foot++] = this.data;if(this.next != null){this.next.toArrayNode();}}public String getNode(int index)//inside class find index for conce{if(Link.this.foot++==index){return this.data;}else{ return this.next.getNode(index);}}}///inside class finish//外部类调用内部类方法public boolean add(String data){//添加链表节点(数据)if(data == null)return false;Node newNode = new Node(data);if(this.root == null)this.root = newNode;elsethis.root.addNode(newNode);this.count++;return true;}public boolean addAll(String data[])//从数组添加节点{for(int x = 0 ;x < data.length ; x++){if(!this.add(data[x]))return false;}return true;}public int size(){//外部寻找断节点个数return this.count;}public boolean isEmpty()//外部类判断是否为空链表{return this.count == 0;}public boolean contains(String data)//外部类判断是否存在节点{if(this.root == null || data == null){return false;}return this.root.containsNode(data);}public void remove(String data)//删除数据点{if(!this.contains(data)){return ;}if(data.equals(this.root.data)){this.root = this.root.next;}else{this.root.next.removeNode(this.root,data);}this.count--;}public boolean changeFlag = true;public int foot = 0;private String[] retData;public String[] toArray(){if(this.count == 0){return null;}if(this.changeFlag == true){ this.foot = 0; this.retData = new String[this.count]; this.root.toArrayNode(); this.changeFlag = false;} return this.retData;}public String get(int index){if(index > this.count){return null;}this.foot = 0;return this.root.getNode(index);}public void clear(){this.root = null;this.count = 0;}}
0 0
- java实现简单链表
- Java实现简单链表
- java简单实现链表
- java简单链表实现
- java实现简单链表
- (25)Java实现简单的链表
- 单向链表的java简单实现
- [记录]Java---实现简单的链表
- java实现链表简单示例
- Java简单实现链表增删排
- Java链表的简单实现
- Java链表的简单实现
- java的双向链表简单实现
- Java顺序表简单实现
- [java数据结构]--java双向链表LinkedList的简单实现
- java模拟链表和栈以及简单实现
- Java数据结构之简单的链表的实现
- Java -- 栈、队列等数据结构的简单链表实现
- codevs1557
- spring 基于注解的Cache支持
- sublime text3 快捷键整理(不全)
- SAP中如何给成本要素分配多个默认成本中心
- 仿新浪微博
- java简单实现链表
- 解决SQL Server管理器无法连接远程数据库Error: 1326错误
- 马浮云语录
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@d3ade7 ,项目启动错误
- spring 基于XML配置的Cache支持
- 对按时间先后顺序的列表按同一天进行分组
- 最牛B的编码套路
- Activity Intent相关FLAG介绍
- Android lib与libs的区别和解决apk动态加载时异常