• java数据结构和算法------队列


     1 // 普通队列
     2 package iYou.neugle.list;
     3 
     4 public class MySeqQueue<T> {
     5     private SeqQueue queue = new SeqQueue();
     6 
     7     class SeqQueue {
     8         public int maxSize = 10;
     9         public T[] data = (T[]) new Object[this.maxSize];
    10         public int head = 0;// 头指针
    11         public int tail = 0;// 尾指针
    12     }
    13 
    14     // 初始化队列
    15     public void SeqQueueInit() {
    16         this.queue.head = 0;
    17         this.queue.tail = 0;
    18         System.out.println("队列初始化成功!");
    19     }
    20 
    21     // 出队
    22     public T SeqQueueOut() {
    23         if (this.queue.head == this.queue.tail) {
    24             System.out.println("队列已空,无法出队!");
    25             return null;
    26         }
    27         T data = this.queue.data[this.queue.head];
    28         this.queue.data[this.queue.head] = null;
    29         this.queue.head++;
    30         return data;
    31     }
    32 
    33     // 入队
    34     public void SeqQueueIn(T data) {
    35         if (this.queue.tail == this.queue.maxSize) {
    36             System.out.println("队列已满,无法入队!");
    37             return;
    38         }
    39         this.queue.data[this.queue.tail++] = data;
    40     }
    41 
    42     // 获取队头元素
    43     public T SeqQueuePeek() {
    44         if (this.queue.head == this.queue.tail) {
    45             System.out.println("队列已空,无法获取列头元素!");
    46             return null;
    47         }
    48 
    49         return this.queue.data[this.queue.head];
    50     }
    51 
    52     // 获取队列长度
    53     public int SeqQueueLen() {
    54         return this.queue.tail - this.queue.head;
    55     }
    56 }
     1 // 循环队列
     2 package iYou.neugle.list;
     3 
     4 public class MySeqLoopQueue<T> {
     5     private SeqQueue queue = new SeqQueue();
     6 
     7     class SeqQueue {
     8         public int maxSize = 10;
     9         public T[] data = (T[]) new Object[this.maxSize];
    10         public int head = 0;// 头指针
    11         public int tail = 0;// 尾指针
    12         public int size = 0;// 实际数
    13     }
    14 
    15     // 初始化队列
    16     public void SeqQueueInit() {
    17         this.queue.head = 0;
    18         this.queue.tail = 0;
    19         this.queue.size = 0;
    20         System.out.println("循环队列初始化成功!");
    21     }
    22 
    23     // 出队
    24     public T SeqQueueOut() {
    25         if (this.queue.size == 0) {
    26             System.out.println("循环队列已空,无法出队!");
    27             return null;
    28         }
    29         T data = this.queue.data[this.queue.head];
    30         this.queue.data[this.queue.head] = null;
    31         this.queue.size--;
    32         this.queue.head = (this.queue.head + 1) % this.queue.maxSize;
    33         return data;
    34     }
    35 
    36     // 入队
    37     public void SeqQueueIn(T data) {
    38         if (this.queue.size == this.queue.maxSize) {
    39             System.out.println("循环队列已满,无法入队!");
    40             return;
    41         }
    42         this.queue.data[this.queue.tail] = data;
    43         this.queue.size++;
    44         this.queue.tail = (this.queue.tail + 1) % this.queue.maxSize;
    45     }
    46 
    47     // 获取队头元素
    48     public T SeqQueuePeek() {
    49         if (this.queue.size == 0) {
    50             System.out.println("循环队列已空,无法获取列头元素!");
    51             return null;
    52         }
    53 
    54         return this.queue.data[this.queue.head];
    55     }
    56 
    57     // 获取队列长度
    58     public int SeqQueueLen() {
    59         return this.queue.size;
    60     }
    61 }
  • 相关阅读:
    form表单提交方式
    docker overlay2 目录下文件夹占用空间过大
    基本操作:vscode快捷键
    基本操作:vscodegit使用和命令
    关闭win10“快速启动”功能
    在CentOS 7.4下配置VNC Server服务
    golang 百分比抽奖几率
    对新闻客户端APP的性能优化实战
    性能优化专题 OOM 与 内存优化
    centos 安装谷歌浏览器和selenium环境 李刚
  • 原文地址:https://www.cnblogs.com/niuxiaoha/p/4635976.html
Copyright © 2020-2023  润新知