zoukankan      html  css  js  c++  java
  • 用固定长度的数组实现stack queue

     1 package my_basic.class_3;
     2 
     3 /**
     4  * 用数组结构实现大小固定的队列和栈
     5  */
     6 public class Code_01_Array_stack_queue {
     7     
     8     public static class ArrayStack{
     9         private Integer[] arr;
    10         private Integer size;
    11         
    12         public ArrayStack(int initSize) {
    13             if (initSize < 0) {
    14                 throw new IllegalArgumentException("The init size is less than 0");
    15             }
    16             arr = new Integer[initSize];
    17             size=0;
    18             
    19         }
    20         
    21         public Integer peek() {
    22             if (size == 0) {
    23                 return null;
    24             }
    25             return arr[size-1];
    26             
    27         }
    28         public void push(int num) {
    29             if (size == arr.length) {
    30                 throw new ArrayIndexOutOfBoundsException("the stack is full");
    31             }
    32             arr[size++] = num;
    33         }
    34         public Integer pop() {
    35             if (size == 0) {
    36                 throw new ArrayIndexOutOfBoundsException("the stack is empty");
    37             }
    38             size--;
    39             return arr[size];
    40         }
    41     
    42 }
    43 
    44     public static class ArrayQueue{
    45         private Integer[] arr;
    46         private int size;
    47         private int first;
    48         private int last;
    49         
    50         public ArrayQueue(int initSize) {
    51             if (initSize < 0 ) {
    52                 throw new IllegalArgumentException("The init size is less than 0");
    53             }
    54             arr = new Integer[initSize];
    55             size=0;
    56             first=0;
    57             last=0;
    58         }
    59         public Integer peek() {
    60             if (size == 0) {
    61                 return null;
    62             }
    63             return arr[first];
    64         }
    65         public void push(int obj) {
    66             if (size == arr.length) {
    67                 throw new ArrayIndexOutOfBoundsException("the queue is full");
    68             }
    69             size++;
    70             arr[last] = obj;
    71             last = (last == arr.length-1) ? 0 : last++;
    72         }
    73         public Integer poll() {
    74             if (size == 0) {
    75                 throw new ArrayIndexOutOfBoundsException("the queue is empty");
    76             }
    77             size--;
    78             int res = first;
    79             first = (first == arr.length-1)? 0 : first++;
    80             return arr[res];
    81         }
    82         
    83     }
    84     
    85     public static void main(String[] args) {
    86         
    87         
    88     }
    89         
    90     
    91 }
  • 相关阅读:
    poj 3767 I Wanna Go Home (有限制的最短路)
    gcd及扩展gcd
    2012 多校联合比赛第二场
    大整数 问题
    从数据流动看数据结构
    vc/vs常用快捷键
    函数重载
    mysql相关
    xml理解
    编译相关
  • 原文地址:https://www.cnblogs.com/lihuazhu/p/10834509.html
Copyright © 2011-2022 走看看