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 }

     栈初始化

  • 相关阅读:
    swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
    swift 第十三课 GCD 的介绍和使用
    swift 第十二课 as 的使用方法
    swift 第十一课 结构体定义model类
    swift 第十课 cocopod 网络请求 Alamofire
    swift 第九课 用tableview 做一个下拉菜单Menu
    swift 第八课 CollectView的 添加 footerView 、headerView
    swift 第七课 xib 约束的优先级
    swift 第六课 scrollview xib 的使用
    swift 第五课 定义model类 和 导航栏隐藏返回标题
  • 原文地址:https://www.cnblogs.com/zhaobing/p/3062627.html
Copyright © 2011-2022 走看看