顺序栈:
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

因为栈的先进后出特性,所以我们可以用来做很多的工作,例如:我们判断一个数是否是回文数(若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数,如:12344321就是回文数),我们只需要将数据压入栈,再取出,取出的元素同原元素相等,则判断为回文数。如:123被压入栈后取出则为321所以你懂的。。。


package com.usts.edu.stack;
 
/**
 * Created by Guanzhong Hu
 * Date :2019/12/28
 * Description :栈的JAVA表示,先进后出,后进先出
 * Version :1.0
 */
public interface IStack {
//    置空栈
    public void clear();
public boolean isEmpty();// 判断是否为空,top=0;

public int length();// length = top

public Object peek();//读取栈内元素,并返回值,若为空则返回null

public void push(Object x) throws Exception;//入栈操作,将x元素压入栈顶

public Object pop();// 删除并返回栈顶元素

public void display();

}

package com.usts.edu.stack;
 
/**
 * Created by Guanzhong Hu
 * Date :2019/12/28
 * Description : 栈的实现
 * Version :1.0
 */
public class SqlStack implements IStack {
 
    private Object[] stackElem; //对象数组
 
    private int top;// 在非空栈时,top始终指向栈顶元素的下一个存储位置,当栈空时,top = 0
 
    public SqlStack(int maxSize) {
        top = 0;
        stackElem = new Object[maxSize];
    }
 
    @Override
    public void clear() {
        top = 0;
    }
 
    @Override
    public boolean isEmpty() {
        return top == 0;
    }
 
    @Override
    public int length() {
        return top;
    }
 
    @Override
    public Object peek() {
        if (!isEmpty()) {
            return stackElem[top - 1];
        } else {
            return null;
        }
    }
 
    @Override
    public void push(Object x) throws Exception {
        if (top == stackElem.length) throw new Exception("栈内元素已满");
        stackElem[top] = x;
        top++;
    }
 
    @Override
    public Object pop() {
        if (isEmpty())
            return null;
        else 
            return stackElem[--top];
    }
 
    @Override
    public void display() {
        for (int i = top-1; i >=0; i--) {
            System.out.println(stackElem[i].toString()+"");
        }
    }
 
}

gitee源码地址:

https://gitee.com/jockhome/da...


小威尔
1 声望0 粉丝