欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java---单链表

程序员文章站 2022-03-21 17:07:25
java学习经验总结 单链表的建立与结点的增删 在该链表结点有data数据,并且还有cpu,分给cpu随机的时间片,根据时间片大小进行结点data的排序 链表结点的建立 链表的构建过程以及添加节点、删除节点 ......

#java学习经验总结------单链表的建立与结点的增删

在该链表结点有data数据,并且还有cpu,分给cpu随机的时间片,根据时间片大小进行结点data的排序

链表结点的建立

class linknode{//结点的建立  
    private int data;
    private int cpu;
    public linknode next;
    public linknode(int data) {
        this.data=data;
        
    }
    public int getcpu() {
        return cpu;
    }
    public void setcpu(int cpu) {
        this.cpu = cpu;
    }
    public int getdata() {
        return data;
    }
    public void setdata(int data) {
        this.data = data;
    }
    

链表的构建过程以及添加节点、删除节点

class linklist{
    private linknode front;
    private linknode current;
    public linklist() {
        current=front=new linknode(0);//单链表头节点必须对象化,否则会导致空指针异常
    
        
    }
    public void add(int data) {//链表的添加
        linknode node = new linknode(data);
        while(current.next!=null) {
            current=current.next;
        }
        current.next=node;
    }
    public void print() {//链表的打印
        linknode node =front.next;
        while(node!=null) {
            system.out.println(node.getdata()+" "+node.getcpu());
            node=node.next;
        }
        system.out.println("======================================");
    }   
    public void sort(int temp) {//对链表进行排序
        int a;
        int b;
        for(int i=0;i<temp-1;i++)
        {
            
            linknode now=front.next;
            for(int j=0;j<temp-i-1;j++) {
                if(now.getcpu()>now.next.getcpu()) {
                    a=now.getdata();
                    b=now.next.getdata();
                    now.setdata(b);
                    now.next.setdata(a);
                    a=now.cpu;
                    now.cpu=now.next.cpu;
                    now.next.cpu=a;
                    system.out.println();
                    
                }
                now=now.next;
            }
        }
        
    }
    public void delete(int num) {//链表的删除
        int i=1;
        linknode node=front;
        while(i<num) {
            node=node.next;
            i++;
        }
    
        node.next=node.next.next;
        
    }
}