建立单向Linked List-------随手笔记

这篇博客介绍如何用Java编程实现一个简单的链表数据结构,用于存储学生成绩。通过创建Node类和LinkedList类,实现了插入新节点、检查链表是否为空以及打印链表内容的功能。在主函数中,用户可以输入5个学生的学号、姓名和成绩,然后这些数据会被插入链表并打印出来。这个例子展示了基本的链表操作在实际问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.demo需求:

用Java语言的链表处理学生成绩问题,从键盘输入5学生的学号、姓名、成绩。

2.分析:

首先声明节点的数据类型,让每个节点包含一个数据,并且包含指向下一个数据的指针,使所有数据能被串在一起而形成一个列表结构。
创建Node类和Linked List类,在Linked List类中,除了定义两个Node类节点指针,分别指向链表的第一个节点和最后一个节点外,还在该类中声明三个方法,boolean isEmpty()、void print()、void inset(int data,String names,int np)。

3.代码:

`class Node {
           int data;
           int np;
           String names;
           Node next;
           //节点声明的构造方法
public Node(int data,int np,String names){  
          this.data = data;
          this.np = np;
          this.names  = names;
          this.next = next;   }
}`
public class LinkedList{
       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.names" "+current.np+"]");
          current = cunrrent.next;
          }
          System.out.println();
   }
   //将指定的节点插入至目前的列表
      public void insert(int data,String names,int np) {
           Node newNode = new Node(data,names,np);
           if(this.isEmpty()){
           first = newNode;
           last = newNode;
           }else{
    //将两个节点串连起来
           last.next = newNode;
           last = newNode;
         }
     }
}

接着再利用数据声明来建立5个学生成绩的单向链表,并访问每一个节点来打印成绩。

public class Test{
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个学生数据");
        LinkedList list = new LinkedList();
        
        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,name,score);
        System.out.println("------------");
     } 
       System.out.println("学生成绩");
       System.out.println("学号姓名成绩========");  
       list.print();    
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值