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

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();    
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值