数据结构(Java)队列实现

核心代码

public class Queue {
    //队列表头/表尾
    private Node first = null;
    private Node lase = null;

    public int getN() {
        return N;
    }

    //计数器
    private int N = 0;

    //节点
    private class Node{
        Object obj;
        Node next;
    }

    //判断队列是否为空
    public Boolean isEmpty(){
        return first == null;
    }

    //添加队列数据
    public void EnQueue(Object obj){
        Node oldNode = lase;
        lase = new Node();
        lase.obj = obj;
        lase.next = null;

        if(isEmpty()) {
            oldNode = lase;
            first = lase;
        }

        oldNode.next = lase;

        N++;
    }

    //删除队列数据
    public Object UnQueue(){
        Object obj = first.obj;
        first = first.next;

        if (isEmpty()){
            System.out.println("队列为空");
            return "";
        }

        N--;
        return obj;
    }

    //遍历
    public void print(){
        Node node_text = first;
        for(int i = 0; i < N; i++){
            System.out.println(node_text.obj);
            node_text = node_text.next;
        }
    }
}

测试代码

public class text {
    public static void main(String[] args){
        Queue T = new Queue();

        System.out.println("N = "+ T.getN());

        System.out.println(T.isEmpty() ? "队列为空" : "队列有值");

        T.EnQueue(1);
        T.EnQueue(2);

        System.out.println("N = "+ T.getN());

        T.EnQueue(3);
        T.EnQueue(4);

        System.out.println("N = "+ T.getN());

        T.print();

        T.UnQueue();
        T.UnQueue();

        System.out.println();

        T.print();

        System.out.println(T.isEmpty() ? "队列为空" : "队列有值");

        System.out.println("N = "+ T.getN());
    }
}

控制台运行:

"C:\Program Files\Java\jdk1.8.0_333\bin\java.exe" "-javaagent:D:\IDEA\IntelliJ IDEA Community Edition 2020.3\lib\idea_rt.jar=51257:D:\IDEA\IntelliJ IDEA Community Edition 2020.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_333\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\rt.jar;E:\······后端······\1.2 ····java系列····\01_代码库\练习\队列\out\production\untitled" text
N = 0
队列为空
N = 2
N = 4
1
2
3
4

3
4
队列有值
N = 2

进程已结束,退出代码为 0

感谢观看~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值