1. 程式人生 > >JAVA中連結串列的實現

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程式碼的輸出如下: