zoukankan      html  css  js  c++  java
  • java 数据结构 队列的实现

    java 数据结构队列的代码实现,可以简单的进行入队列和出队列的操作

    /**
     * java数据结构之队列的实现
     * 2016/4/27
     **/
    package cn.Link;
    import java.util.*;
    
    public class Queue{
        Node tail = new Node(); 
        Node nowNode = new Node();   //永远指向队首
        int size;
        Queue(){};
        Queue(String date){
            this.tail.date = date;
            this.tail.next = null;
            this.nowNode.next = this.tail;
            this.size = 1;
            System.out.println("队列已经被建立,"+date+"被加入到队列中");
        }
    
        //节点类
        class Node{
            String date;
            Node next;
            Node(){};
            Node(String date){
                this.date = date;
            }
        }
    
        //向队列中插入数据
        public void EnQueue(String date){
            Node preNode = new Node(date);
            preNode.next = this.nowNode.next;
           this.nowNode.next = preNode; 
           this.size++;
           System.out.println("数据"+date+"被加入到队列中");
        }
    
        //出队列操作
        public void DeQueue(){
            Node preNode = new Node();
            preNode.next = this.nowNode.next;
            while(true){
                if(preNode.next.next != this.tail){
                    preNode.next = preNode.next.next;
                }else{
                    preNode.next.next = null;
                    this.tail = preNode.next;
                    System.out.println("出队列完成~~~"); break;
                }
            }
            this.size--;
        }
    
        //遍历队列输出
        public void PrintQueue(){
            Node preNode = new Node();
            preNode.next = this.nowNode.next;
            System.out.print("遍历输出队列: ");
            while(preNode.next != null){
                System.out.print(" -->"+preNode.next.date);
                preNode.next = preNode.next.next;
            }
            System.out.println("+++++++++++当前队列的长度为"+this.size);
        }
    
        //清空队列
        public void clear(){
            this.nowNode.next = null;
            this.tail = null;
            this.size = 0;
            System.out.println("队列已被清空");
    
        }
    
        public static void main(String[] args){
            Queue queue = new Queue("sum1");
             queue.EnQueue("sum2");
             queue.EnQueue("sum3");
             queue.EnQueue("sum4");
             queue.EnQueue("sum5");
             queue.EnQueue("sum6");
             queue.EnQueue("sum7");
             queue.EnQueue("sum8");
             queue.PrintQueue();
             queue.DeQueue();
             queue.DeQueue();
             queue.PrintQueue();
        }
    }
  • 相关阅读:
    Python学习笔记之操作yalm
    Python学习笔记之多线程
    Python学习笔记之网络编程
    Python学习笔记之面对象与错误处理
    Python学习笔记之装饰器
    Python学习笔记之内置模块
    Python学习笔记之函数与正则
    PAT甲级1049. Counting Ones
    PAT甲级1045. Favorite Color Stripe
    PAT甲级1034. Head of a Gang
  • 原文地址:https://www.cnblogs.com/snail-lb/p/5437977.html
Copyright © 2011-2022 走看看