设计一个Java程序,可以让用户输入数据来添加学生数据节点,以建立一个单向链表。
一共输入5位学生的成绩来建立好单向链表,然后遍历这个单向链表的每一个节点来打印输出学生的成绩。单向链表的遍历就是访问链表中的每个节点。
package linkList;
class Node{
int data;
int np;
String name;
Node next;
public Node(int data,int np,String name) {
this.np=np;
this.data=data;
this.name=name;
this.next=null;
}
}
public class linkList {
private Node first;
private Node last;
public boolean isEmpty() {
return first==null;
}
public void print() {
Node current=first;
while(current!=null) {
System.out.println("["+current.data+" "+current.name+" "+current.np+"]");
current=current.next;
}
System.out.println();
}
public void insert(int data,int np,String names) {
Node newNode=new Node(data,np,names);
if(isEmpty()) {
first=newNode;
last=newNode;
}else {
last.next=newNode;
last=newNode;
}
}
}
package linkList;
import java.io.*;
public class Grades {
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("请输入5位学生的数据:");
linkList list=new linkList();
for(int i=1;i<6;i++) {
System.out.println("请输入学号:");
num=Integer.parseInt(buf.readLine());
System.out.println("请输入姓名:");
name=buf.readLine();
System.out.println("请输入成绩:");
score=Integer.parseInt(buf.readLine());
list.insert(num, score, name);
System.out.println("-------------");
}
System.out.println("学生成绩");
System.out.println("学号姓名成绩===");
list.print();
}
}



