JAVA中链表的实现

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

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代码的输出如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值