链表的增删改查(Java编程)

public class Linked {
    private Node head;
    private Node last;
    private int size;
    public Linked(){
        size = 0;
    }
    public Linked(Node head,Node last){
        this.head = head;
        this.last = last;
        head.next = last;
        size = 2;
    }
    public void insert(Node node,int index)throws Exception{
        if (index<0||index>size){
            throw new Exception("链表越界");
        }
        //如果还没有初始化
        if (size == 0){
            this.head = node;
            this.last = node;
        }
        //插在尾部
        else if (index==size){
            last.next = node;
            last = last.next;
        }
        //插在头部
        else if (index == 0){
            node.next = head;
            head = node;
        }
        //插在中间
        else{
            node.next = getNode(index-1).next;
            getNode(index-1).next = node;
        }
        size++;
    }
    public void delete(int index)throws Exception{
        if (index<0||index>size){
            throw new Exception("链表越界");
        }
        if (index == 0){
            head = head.next;
        }
        else if (index == size-1) {
            getNode(index - 1).next = null;
            last = getNode(index - 1);
        }
        else{
            getNode(index-1).next = getNode(index).next;
        }
        size--;
    }
    public Node getNode(int index){
        int i = 0;
        Node n1 = head;
        while(true){
            if (i == index){
                return n1;
            }
            n1 = n1.next;
            i++;
        }
    }
    public void update(int index,String date){
        getNode(index).date = date;
    }


    public void output(){
        Node n1 = head;
        for (int i = 0; i < size; i++) {
            System.out.println(n1+" ");
            n1 = n1.next;
        }

    }

    public static void main(String[] args)throws Exception {
        Node n1 = new Node("1号");
        Node n2 = new Node("2号");
        Node n3 = new Node("3号");
        Node n4 = new Node("4号");
        Node n5 = new Node("5号");
        Node n6 = new Node("6号");
        Linked linked1 = new Linked(n1, n5);
        linked1.insert(n2,1);
        linked1.insert(n3,2);
        linked1.insert(n4,3);
        linked1.insert(n6,0);
        linked1.update(0,"0号");
        linked1.output();
        linked1.delete(0);
        linked1.delete(2);
        linked1.delete(3);
        linked1.output();
    }

}
class Node{
    String date;
    Node next;
    public Node(){}
    public Node(String date,Node next){
        this.date = date;
        this.next = next;
    }
    public Node(String date){
        this.date = date;
    }


    @Override
    public String toString() {
        return date;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以为您提供一些有关如何用Java编写学生信息管理系统的指导建议。首先,您可以使用Java的类和对象来定义学生信息的结构,包括学生的姓名、年龄、学号等信息。其次,您可以使用Java数据结构,如数组、链表、栈等,来存储学生的信息,并编写相应的函数来实现学生信息的增删改查功能。最后,您可以使用Java的图形界面技术,如Java Swing、JavaFX等,来实现学生信息管理系统的图形化界面。 ### 回答2: 学生信息管理系统是一个用来管理学生信息的软件工具。使用Java编写这个系统可以实现学生信息的增加、删除、修改和查询功能。 在编写这个系统之前,首先需要定义学生信息的数据结构。可以创建一个学生类,包含学生的姓名、学号、年龄、性别等基本信息,并根据需要添加其他更具体的信息字段。 使用Java的面向对象编程思想,可以定义一个学生信息管理系统类,该类包含对学生信息的增删改查方法。例如,实现一个addStudent()方法,用于添加新的学生信息,该方法接收学生对象作为参数,并将其添加到学生信息列表中。类似地,可以实现deleteStudent()方法来删除指定学生信息,updateStudent()方法来更新学生信息,searchStudent()方法来根据条件查询学生信息。 在实现增删改查方法时,可以使用Java提供的集合类如ArrayList来存储学生信息。通过遍历集合和比对学生信息的属性,可以实现指定条件的查询操作。同时,为了方便管理学生信息,可以使用哈希表或者数据库来存储学生信息,实现快速查找和修改。 除了基本的增删改查功能,一个完善的学生信息管理系统还可以添加其他功能,如导入导出学生信息、统计学生信息等。 总之,通过使用Java编写学生信息管理系统,可以方便地管理学生的基本信息,同时提供相应的增删改查功能,提高学生信息的管理效率和准确性。 ### 回答3: 学生信息管理系统是一个可以用来管理学生信息的软件系统,在Java编程语言中可以使用面向对象的方式来实现。 首先,需要定义一个Student类来表示一个学生对象,该类可以包含学生的姓名、学号、性别、年龄等属性。 接下来,可以利用集合类(例如ArrayList)来存储学生对象,以便进行增删改查操作。可以定义一个StudentManager类,该类中包含可以对学生信息进行增删改查的方法。 例如,通过编写addStudent方法来添加学生信息,deleteStudent方法来删除学生信息,updateStudent方法来更新学生信息,searchStudent方法来查询学生信息。 在addStudent方法中,可以通过接收用户输入的数据来创建一个Student对象,并将其加入到集合类中。 在deleteStudent方法中,可以接收用户输入的学号参数,通过遍历集合类找到该学生信息并删除。 在updateStudent方法中,可以接收用户输入的学号参数,通过遍历集合类找到对应的学生信息,再根据用户输入的新的属性值进行更新。 在searchStudent方法中,可以接收用户输入的学号参数,通过遍历集合类找到对应的学生信息并返回。 最后,可以在主函数中创建一个学生信息管理系统对象,通过调用该对象的方法,实现对学生信息的增删改查。 需要注意的是,学生信息管理系统还可以进一步优化,例如可以增加文件读写功能,将学生信息保存到文件中,实现数据的持久化;还可以增加用户界面,通过图形界面或者命令行界面来与用户交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值