简单单向链表的java实现,这里只实现了顺序插入操作,暂不支持在链表任意位置插入元素,代码背景:实现链表,其中每个节点代表一个学生信息,包括:学号、姓名和成绩。
/*
* 节点类,每个节点代表一个学生信息,包括:学号、姓名和成绩
* */
class Node
{
int IDnumber;
int score;
String name;
Node next;
public Node(int IDnumber, String name, int score)
{
this.IDnumber = IDnumber;
this.name = name;
this.score = score;
this.next = null;
}
}
public class LinkedList {
public Node first;
public Node last;
public boolean isEmpty()
{
return first == null;
}
public void print()
{
Node current = first;
while(current != null)
{
System.out.println("["+current.IDnumber+" " + current.name+" "+current.score+"]");
current = current.next;
}
System.out.println();
}
/*
* 该函数设计的功能只能依次插入,不能随便位置插入
* */
public void insert(int IDnumber,String name, int score)
{
Node newNode=new Node(IDnumber, name, score);
if(this.isEmpty())
{
first = newNode;
last=newNode;
}
else {
last.next=newNode;
last=newNode;
}
}
}
//package com.liu.DataStructureChapter3;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Random;
public class LinkedListTest {
public static void main(String[] args) throws IOException
{
BufferedReader buf;
buf=new BufferedReader(new InputStreamReader(System.in));
int num;
String name;
int score;
System.out.println("请输入4个学生数据: ");
LinkedList linkedList = new LinkedList();
for(int i=1; i<5; i++)
{
System.out.print("请输入学号:");
num = Integer.parseInt(buf.readLine());
System.out.print("请输入姓名:");
name=buf.readLine();
System.out.print("请输入成绩:");
score=Integer.parseInt(buf.readLine());
linkedList.insert(num, name, score);
System.out.println("------------------");
}
System.out.println("单向链表是否为空:"+linkedList.isEmpty());
System.out.println("学生成绩:");
System.out.println("学号姓名成绩=============");
linkedList.print();
}
}
在命令行中依次输入学生信息,运行结果如下: