zoukankan      html  css  js  c++  java
  • 栈的实现

    栈(stack)是简单的数据结构,但在计算机中使用广泛。它是有序的元素集合。栈最显著的特征是LIFO (Last In, First Out, 后进先出)。当我们往箱子里存放一叠书时,先存放的书在箱子下面,我们必须将后存放的书取出来,才能看到和拿出早先存放的书。

    实现代码如下(基于数组):

     1 package DataStructure.Stack_Queue.Stack;
     2 
     3 public class Stack {
     4     private int maxSize; //size of stack array
     5     private long[] stackArray;//item container
     6     private int top;//  stack top pointer
     7     
     8     public Stack(int size){
     9         maxSize  = size;
    10         stackArray = new long[maxSize];
    11         top = -1;  //初始化时  栈顶指针 指向-1
    12     }
    13     
    14     /**
    15      * 
    16     * @Description: 压栈操作 
    17     * @param value  
    18     * @return void      
    19     * @author: zhaob
    20     * @date: 2013-4-26 上午05:21:22
    21      */
    22     public void push(long value)  {
    23          top++;//栈顶指针 加1
    24          stackArray[top] = value;  //将栈顶指针指向的item赋值为value
    25     }
    26     
    27     /**
    28      * 
    29     * @Description:  出栈操作 
    30     * @return void      
    31     * @author: zhaob
    32     * @date: 2013-4-26 上午05:23:46
    33      */
    34     public long pop()  {
    35          long returnVlaue = stackArray[top];//将栈顶指针所指的item的值取出
    36          top--;//栈顶指针减一
    37          return  returnVlaue;
    38     }
    39     
    40     /**
    41      * 
    42     * @Description:查看栈顶指针 
    43     * @return  
    44     * @return long      
    45     * @author: zhaob
    46     * @date: 2013-4-26 上午05:26:11
    47      */
    48     public long peek()  {
    49          return this.stackArray[this.top];
    50     }
    51     
    52     /**
    53     * @Description:判断当前栈是否为空  如果为空 返回true  如果不为空 返回false 
    54     * @return boolean      
    55     * @author: zhaob
    56     * @date: 2013-4-26 上午05:27:04
    57      */
    58     public boolean isEmpty()  {
    59         return (this.top == -1);
    60     }
    61     
    62     /**
    63     * @Description:判断当前栈是否为满  如果满返回true如果不满 返回false 
    64     * @return  
    65     * @return boolean      
    66     * @author: zhaob
    67     * @date: 2013-4-26 上午05:29:00
    68      */
    69     public boolean isFull(){
    70         return (this.top == this.maxSize-1);
    71     }
    72     
    73     
    74 }

     栈初始化

  • 相关阅读:
    js 获取时间差
    linq 两个list合并处理,并分组
    单例模式 双锁
    2018年的读书清单
    感悟
    asp.net使用Microsoft.mshtml提取网页标题等解析网页
    //利用反射快速给Model实体赋值
    C# url接口调用
    多字段动态查询
    对图片的操作
  • 原文地址:https://www.cnblogs.com/zhaobing/p/3062627.html
Copyright © 2011-2022 走看看