数据结构(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 FilesJavajdk1.8.0_333injava.exe" "-javaagent:D:IDEAIntelliJ IDEA Community Edition 2020.3libidea_rt.jar=51257:D:IDEAIntelliJ IDEA Community Edition 2020.3in" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_333jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_333jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_333jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_333jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_333jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_333jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_333jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_333jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_333jrelibext
ashorn.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_333jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_333jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_333jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_333jrelibjce.jar;C:Program FilesJavajdk1.8.0_333jrelibjfr.jar;C:Program FilesJavajdk1.8.0_333jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_333jrelibjsse.jar;C:Program FilesJavajdk1.8.0_333jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_333jrelibplugin.jar;C:Program FilesJavajdk1.8.0_333jrelib
esources.jar;C:Program FilesJavajdk1.8.0_333jrelib
t.jar;E:······后端······1.2 ····java系列····1_代码库练习队列outproductionuntitled" text
N = 0
队列为空
N = 2
N = 4
1
2
3
4

3
4
队列有值
N = 2

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

感谢观看~

经验分享 程序员 微信小程序 职场和发展