• 双向链表--简单的增删改查


     java简单代码:

    //双向链表
    public class DoubleLinkedDemo {
        public static void main(String[] args) {
            Student stu1 = new  Student(0, "苏珊", "女");
            Student stu2 = new  Student(1, "琳达", "女");
            DoubleLinked linked = new DoubleLinked();
            linked.add(stu1);
            linked.add(stu2);
            linked.findAll();
            linked.delete(0);
            linked.findAll();
            linked.update(new  Student(1, "琳达", "boy"));
            linked.findAll();
        }
        
    }
    class DoubleLinked{
        private Student head = new  Student(0, "", "");
    
        public Student getHead() {
            return head;
        }
    
        public void setHead(Student head) {
            this.head = head;
        }
        //add
        public void add(Student stu){
            Student temp = head;
            while(true){
                if(temp.next==null){
                    break;
                }else{
                    temp=temp.next;
                }
            }
            temp.next=stu;
            stu.pre=temp;
        }
        
        //findAll
        //个人理解(倒序的时候找到最后一个 然后推pre)
        public void findAll(){
            Student temp = head;
            while(true){
                if(temp.next==null && temp.pre==null){
                    System.out.println("链表中没有数据");
                    break;
                }
                if(temp.next==null){
                    System.out.println(temp.toString());
                    break;
                }else{
                    if(temp.pre==null){
                        temp=temp.next;
                    }else{
                        System.out.println(temp.toString());
                        temp=temp.next;
                    }
                }
            }
        }
        //delete
        public void delete(int scor){
            Student temp = head;
            while(true){
                if(temp.next==null && temp.pre==null){
                    System.out.println("链表中没有数据");
                    break;
                }
                if(temp.pre!=null){  //判断是否是第一个
                    if(temp.core==scor){
                        temp.pre.next = temp.next;
                        if(temp.next!=null){ //判断是否是最后一个
                            temp.next.pre = temp.pre;
                        }
                        break;
                    }
                }
                temp=temp.next;
            }
        }
        //update
        public void update(Student stu){
            Student temp = head;
            while(true){
                if(temp.next==null && temp.pre==null){
                    System.out.println("链表中没有数据");
                    break;
                }
                if(temp.pre!=null){  //判断是否是第一个
                    if(temp.core==stu.core){
                        temp.name = stu.name;
                        temp.sex = stu.sex;
                        break;
                    }
                }
                temp=temp.next;
            }
        }
        
    }
    class Student{
        public int core; //排名
        public String name;
        public String sex;
        public Student pre; //上一个
        public Student next;//下一个
        
        public Student(int core, String name, String sex) {
            this.core = core;
            this.name = name;
            this.sex = sex;
        }
    
        @Override
        public String toString() {
            return "Student [core=" + core + ", name=" + name + ", sex=" + sex
                    + "]";
        }
        
    }
  • 相关阅读:
    CS224d lecture 16札记
    CS224d lecture 15札记
    CS224d lecture 14札记
    CS224d lecture 13札记
    将博客搬至CSDN
    三张图理解JavaScript原型链
    三道题理解软件流水
    网络安全密码学课程笔记
    “wuliao“(无聊)聊天软件
    大二小学期C#资产管理大作业小记
  • 原文地址:https://www.cnblogs.com/cai170221/p/13494455.html
Copyright © 2020-2023  润新知