JAVA中链表的实现

来源:互联网 发布:南风知我意2傅云深 编辑:程序博客网 时间:2024/06/01 10:18

以下代码是创建一个链表并输出,其中主要用到了内部类,链表的实现是面试中常常遇到的问题,除了链表输出外也可能遇到链表的删除、查找等,参照链表的输出,其他的功能实现并不难。

import java.util.ArrayList;

import java.util.Scanner;
public class MyLinked {
public static void main(String args[]){
System.out.println("请输入各个节点的名称(以00结束)");
ArrayList<String> array = new ArrayList<String>();
Link link = new Link();
String a = "11";
while(!a.equals("00")){
Scanner sc = new Scanner(System.in);
a = sc.next();
array.add(a);
}
int index = 0;
while(index<array.size()-1){
link.addNode(array.get(index));
index++;
}
System.out.println("您创建的链表是:");
link.printLink();
}

}
class Link{
class Node{
private String name;//节点名称
private Node next;//下一个节点
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public Node(String name){
this.name = name;
}
public void addNode(Node newNode){//递归在链表尾部插入节点
if(this.next==null){
this.next = newNode;
}else
this.next.addNode(newNode);
}
public void printNode(){//递归打印节点

if(this.next!=null){
System.out.print(this.name+"-->");
this.next.printNode();
}else
System.out.print(this.name);
}
}
private Node root;//根节点
public void addNode(String name){//插入节点
Node newNode = new Node(name);
if(this.root==null){
this.root=newNode;
}else{
this.root.addNode(newNode);
}
}
public void printLink(){//打印链表
if(this.root==null){
System.out.print("无法打印空链表");
}else{
this.root.printNode();
}
}

}

输出字符: chao ji yu zhou mei shao nv代码的输出如下:


0 0
原创粉丝点击