用Java实现单向链表
来源:互联网 发布:windows sublime c 编辑:程序博客网 时间:2024/06/05 01:01
//
class Link{
private Node root;//the head node
public void addNode(String data){
Node newNode = new Node(data);
if(this.root == null){
this.root = newNode;
}else{
this.root.add(newNode);//method add() is defined in class Node.
}
}
public void printNode(){
if(this.root != null){
this.root.print();
}
}
public boolean contains(String name){
return this.root.search(name);
}
public void deleteNode(String data){
if(this.contains(data)){
if(this.root.data.equals(data)){
this.root = this.root.next;
}else{
this.root.next.delete(root, data);
}
}
}
//inner class Node,将节点进行封装,方便以后的调用,而不用由用户手工去处理各个节点的关系。
class Node{
private String data;
private Node next;
public Node(String data){
this.data = data;
}
public void add(Node newNode){//add node but no data
if(this.next == null){
this.next = newNode;
}else{
this.next.add(newNode);//迭代的方法
}
}
public void print(){//迭代输出
System.out.println(this.data);
if(this.next != null){
this.next.print();
}
}
public boolean search(String data){
if(data.equals(this.data)){
return true;
}else{
if(this.next != null){
return this.next.search(data);
}else{
return false;
}
}
}
public void delete(Node previous, String data){//可以把previous理解为头指针
if(data.equals(this.data)){
previous.next = this.next;
}else{
if(this.next != null){
this.next.delete(this, data);
}
}
}
}
}
public class Test12_1 {
public static void main(String args[]){
Link l = new Link();
l.addNode("A");
l.addNode("B");
l.addNode("C");
System.out.println("=====================before delete================");
l.printNode();
l.deleteNode("B");
System.out.println("==================deleted==================");
l.printNode();
System.out.println();
System.out.println("searse node: "+l.contains("A"));
}
}
- 用java实现单向链表
- 用Java实现单向链表
- 用Java实现单向链表
- java 实现单向链表
- java实现单向链表
- java 单向链表实现
- java实现单向链表
- Java 实现单向链表
- java实现单向链表
- 单向链表--java实现
- java 单向链表实现
- [Java]单向链表实现
- Java 实现单向链表
- java实现单向链表
- JAVA单向链表实现
- java 实现单向链表
- Java实现单向链表
- java实现单向链
- linux下彻底卸载MySQL
- Appium入门--环境准备和实例
- 技术揭秘12306改造(二):探讨12306两地三中心混合云架构
- java飞机游戏小项目
- 计算文本文件中各个词(中英文)出现的频率
- 用Java实现单向链表
- 用java实现优先级别队列
- 考研成绩查询系统(jsp、mysql、java)
- 贪吃蛇游戏(java)
- java坦克游戏
- Eclipse打jar包,资源文件的读取
- MVC、JSP实现mysql的增删改查功能的封装和简陋的界面交互
- 使用struts2框架来实现CRUD(create、read、update、delete)
- IDEA加密文件Base64转换String传输以及报文摘要MD5防止恶意篡改