zoukankan      html  css  js  c++  java
  • Java的链式队列

    参考https://www.cnblogs.com/lixiaolun/p/4646312.html

    java实现链队列的类代码:

     1 package linkqueue;
     2  
     3 public class LinkQueue {
     4      
     5     class Element
     6     {
     7         Object elem;
     8         Element next;
     9     }
    10      
    11     private Element front;
    12     private Element rear;
    13     private Element header = null;
    14      
    15     /**
    16      * 初始化队列
    17      * */
    18     void initQueue()
    19     {
    20         header = new Element();
    21         front = new Element();
    22         rear = new Element();
    23         front=header;
    24         rear=header;
    25     }
    26      
    27     /**
    28      * 向队列插入元素
    29      * */
    30     void enQueue(Object o)
    31     {
    32         Element e=new Element();
    33         e.elem=o;
    34         if(rear==header)//第一次插入元素
    35         {
    36             rear=e;
    37             header.next=e;
    38             front.next=e;
    39         }else
    40         {
    41             rear.next=e;
    42             rear=e;
    43         }
    44     }
    45      
    46     /**
    47      * 出队
    48      * */
    49     Object deQueue()
    50     {
    51         Object o = null;
    52         if(rear==header)
    53         {
    54             System.out.println("队列为空!");
    55         }else
    56         {
    57             o=front.next.elem;
    58             if(front.next==rear)//队中只有一个元素
    59             {
    60                 front.next=header;
    61                 rear=header;
    62             }else//队中大于一个元素
    63             {
    64                 front.next=front.next.next;
    65             }
    66         }
    67         return o;
    68     }
    69      
    70     /**
    71      * 打印队列
    72      * */
    73     void print()
    74     {
    75         System.out.print("打印队列:");
    76         Element temp = front;
    77         while(temp!=rear)
    78         {
    79             System.out.print(temp.next.elem+"	");
    80             temp=temp.next;
    81         }
    82         System.out.println();
    83     }
    84 }

    测试类代码:

     1 package linkqueue;
     2  
     3 public class LinkQueueMain {
     4  
     5     public static void main(String[] args) {
     6         LinkQueue lQueue = new LinkQueue();
     7         lQueue.initQueue();
     8         System.out.println("出队操作:"+lQueue.deQueue());
     9         lQueue.enQueue(1);
    10         lQueue.enQueue(2);
    11         lQueue.enQueue(3);
    12         lQueue.enQueue(4);
    13         lQueue.enQueue(5);
    14         lQueue.print();
    15          
    16         System.out.println("出队操作:"+lQueue.deQueue());
    17         System.out.println("出队操作:"+lQueue.deQueue());
    18         lQueue.print();
    19          
    20         System.out.println("出队操作:"+lQueue.deQueue());
    21         System.out.println("出队操作:"+lQueue.deQueue());
    22         lQueue.print();
    23          
    24         System.out.println("出队操作:"+lQueue.deQueue());
    25         System.out.println("出队操作:"+lQueue.deQueue());
    26         lQueue.print();
    27          
    28     }
    29  
    30 }
  • 相关阅读:
    dubbo入门(一)
    java中文件操作《一》
    Unity 游戏框架搭建 2019 (七) 自定义快捷键
    凉鞋:我所理解的框架 【Unity 游戏框架搭建】
    Unity 游戏框架搭建 2019 (六) MenuItem 复用
    Unity 游戏框架搭建 2019 (五) 打开所在文件夹
    Unity 游戏框架搭建 2019 (四) 导出 UnityPackage
    Unity 游戏框架搭建 2019 (三) 生成文件名到剪切板
    Unity 游戏框架搭建 2019 (二) 文本复制到剪切板
    Unity 游戏框架搭建 2019 (一) 简介与第一个示例文件名的生成
  • 原文地址:https://www.cnblogs.com/StarZhai/p/9982029.html
Copyright © 2011-2022 走看看