zoukankan      html  css  js  c++  java
  • java实现链队列

    1.链队列的优势劣势
    链队列的长度是动态增长的
    需要消耗空间用来存放指针
    2.链队列的实现 //外部类不能直接调用内部类属性
    1.入队列操作,采用内部类的方式,内部类是结点类Node,定义了next和data数据域。外部类是链队列类,定义了头指针top和尾指针rear,定义了count用来记录队列中元素个数。进行入队列操作时候要判断是不是第一次入队列,第一次入队列要将top和rear都指向当前结点。如果不是第一次入队列,那么top指针不移动,rear.next代表的是上一个结点的指针域,将新入队列的结点的首地址赋值给rear.next,此时上一个结点和当前新插入的结点就连接起来了;最后移动rear指针,rear指向当前插入结点。
    2.出队列操作:此时要判断队列是否为空,如果不为空则移动top指向下一个结点。这里的注意要点是需要定义一个中间变量存放当前top的值用来返回出队列的值。
     1 package Queue;
     2 /**
     3 * @类名  LinkQueue.java
     4 * @作者       修仙小华
     5 * @版本  V1.0
     6 * @日期  2019年7月26日-下午1:16:46
     7 * @描述  
     8 * *队列是一种逻辑结构,队列的链式实现
     9 */
    10 public class LinkQueue {
    11     Node top;
    12     Node rear;
    13     int count=0;
    14     /**
    15      * 入队列
    16      */
    17     public void push(String data) {
    18         Node node=new Node(data);
    19         if (top==null) {
    20             top=node;
    21             rear=node;
    22         }else {
    23             rear.next=node;
    24             rear=node;
    25         }
    26         count++;
    27     }
    28     /**
    29      * 出队列
    30      */
    31     public String pop() {
    32         if (top==null) {
    33             return null;
    34         }else {
    35             Node temp=top;
    36             top=top.next;
    37             this.count--;
    38             return temp.data;
    39         }
    40     }
    41     
    42     
    43     
    44     class Node{
    45         public String data;
    46         Node next;
    47         /**
    48          * 有参构造和无参构造
    49          */
    50         public Node() {
    51             
    52         }
    53         public Node(String data) {
    54             this.data=data;
    55         }
    56         
    57     }
    58 }

    测试类:

     1 public class LinkQueueText {
     2     public static void main(String[] args) {
     3         LinkQueue link=new LinkQueue();
     4         link.push("张三");
     5         link.push("李四");
     6         link.push("王二");
     7         link.push("麻子");
     8         link.push("狗帅");
     9         System.out.println(link.pop());
    10         System.out.println(link.pop());
    11         System.out.println(link.pop());
    12         System.out.println(link.count);
    13     }
    14 
    15 }
     
     
  • 相关阅读:
    TortoiseSVN是windows平台下Subversion的免费开源客户端。
    Lotus Sametime 服务器的安装和配置
    群件
    Lotus Sametime
    软件项目经理
    PMP考试
    IT项目经理
    什么是模式呢?
    上下文(context):相关的内容
    设计模式-四要素
  • 原文地址:https://www.cnblogs.com/had1314/p/11268055.html
Copyright © 2011-2022 走看看