zoukankan      html  css  js  c++  java
  • 栈和队列

    栈:先进先出,类似大盒子

    队列:先进后出,类似买票;ps:代码有bug

     1 /** 
     2  * @ClassName: MyStack 
     3  * @Description: 栈 
     4  * @author dongye 
     5  * @date 2016年3月3日 上午9:37:49 
     6  *  
     7  */
     8 public class MyStatck {
     9     //底层实现是数组
    10     private long[] arr;
    11     private int top;
    12     
    13     public MyStatck(){
    14         arr=new long[10];
    15         top=-1;
    16     }
    17     
    18     public MyStatck(int maxSize){
    19         arr=new long[maxSize];
    20         top=-1;
    21     }
    22     
    23     /**
    24      * 
    25     * @Description: 添加数据
    26     * @author dongye  
    27     * @date 2016年3月3日 上午9:41:11 
    28      */
    29     public void push(int value){
    30         top++;
    31         arr[top]=value;
    32     }
    33     
    34     /**
    35      * 
    36     * @Description: 移除数据
    37     * @author dongye  
    38     * @date 2016年3月3日 上午9:42:45 
    39      */
    40     public long pop(){
    41         return arr[top--];
    42         
    43     }
    44 
    45     /**
    46      * 
    47     * @Description: 查看数据 
    48     * @author dongye  
    49     * @date 2016年3月3日 上午9:44:13 
    50      */
    51     public long peek(){
    52         return arr[top];
    53     }
    54     
    55     /**
    56      * 
    57     * @Description: 判断是否为空
    58     * @author dongye  
    59     * @date 2016年3月3日 上午9:45:35 
    60     * @throws
    61      */
    62     public boolean isEmpty(){
    63         return top==-1;
    64     }
    65     
    66     /**
    67      * 
    68     * @Description: 判断是否满了    
    69     * @author dongye  
    70     * @date 2016年3月3日 上午9:45:35 
    71     * @throws
    72      */
    73     public boolean isFull(){
    74         return top==arr.length-1;
    75     }
     1 ** 
     2  * @ClassName: MyQueue 
     3  * @Description: 队列
     4  * @author dongye 
     5  * @date 2016年3月3日 上午10:02:17 
     6  *  
     7  */
     8 public class MyQueue {
     9     //底层使用数组
    10     private long[] arr;
    11     //有效大小
    12     private int elements;
    13     //对头
    14     private int front;
    15     //对尾
    16     private int end;
    17     
    18     public MyQueue(){
    19         arr=new long[5];
    20         front=0;
    21         end=-1;
    22         elements=0;
    23     }
    24     
    25     public MyQueue(int maxsize){
    26         arr=new long[maxsize];
    27         front=0;
    28         end=-1;
    29         elements=0;
    30     }
    31     
    32     /**
    33      * 
    34     * @Description: 添加数据
    35     * @author dongye  
    36     * @date 2016年3月3日 上午10:32:36 
    37      */
    38     public void insert(long value){
    39         if(end==arr.length-1){
    40             end=-1;
    41         }
    42         arr[++end]=value;
    43         elements++;
    44     }
    45     
    46     /** 
    47      * @Description: 删除
    48      * @author dongye  
    49      * @date 2016年3月3日 上午10:38:46 
    50      */
    51     public long remove() {
    52         if(front==arr.length){
    53             front=0;
    54         }
    55         elements--;
    56         return arr[front++];
    57     }
    58     
    59     /**
    60     * @Description: 查看
    61     * @author dongye  
    62     * @date 2016年3月3日 上午10:43:25 
    63      */
    64     public long peek(){
    65         return arr[front];
    66     }
    67     
    68     /**
    69      * 
    70     * @Description: 判断是否为空
    71     * @author dongye  
    72     * @date 2016年3月3日 上午9:45:35 
    73      */
    74     public boolean isEmpty(){
    75         return elements==0;
    76     }
    77     
    78     /**
    79      * 
    80     * @Description: 判断是否满了    
    81     * @author dongye  
    82     * @date 2016年3月3日 上午9:45:35 
    83      */
    84     public boolean isFull(){
    85         return elements==arr.length;
    86     }
    87 
    88 }
  • 相关阅读:
    序列、元组、列表(基本的增、删、改、查)
    Python基础运算符(算数、比较、赋值、逻辑、成员)
    2015年9月14日记事
    2014年3月31日梦
    华为S5700系列交换机配置文件导出、导入
    C语言单链表简单实现(简单程序复杂化)
    北邮《大学英语2》第三次阶段作业带答案
    C++走向远洋——30(六周,项目一1.0)
    C++走向远洋——29(长方柱类)
    C++走向远洋——28(项目三,时间类,2)
  • 原文地址:https://www.cnblogs.com/snow1314/p/5240975.html
Copyright © 2011-2022 走看看