数据结构(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
感谢观看~
下一篇:
Java数据结构与算法之学习路线