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
- JAVA中链表的实现
- Java开发-Java中链表的实现
- java中链表的实现类LinkedList
- JAVA实现的时钟实现
- 【Java】Java中多态的实现
- “网络蚂蚁”的Java实现
- Java的MD5实现
- java md5 的实现
- java md5 的实现
- java md5 的实现
- “网络蚂蚁”的Java实现
- “网络蚂蚁”的Java实现
- java数据库的实现
- java中回调的实现
- MD5 的 Java 实现
- java 实现的队列
- java md5 的实现
- Base64的java实现
- Swift方法
- 把天化成周
- 开发那些坑之使用百川趣拍sd集成真实项目
- Centos7安装Qt5.5
- 第六章 数据存储全方案,详解持久化技术
- JAVA中链表的实现
- 用數組求平均數並列出大於平均數的數
- php如果执行一个死循环及后台自动执行
- Window下的dos环境下编译运行下运行c程序
- 用函數求任意一個數到另一個數中所有數之和(包括本身)
- 交换分区管理
- cf#33-B - String Problem-反向建图+最短路
- 【2016/1】 Unix IPC 信号 共享内存 消息队列
- thinkphp无法识别数据表名大小写问题