数据结构——顺序栈

来源:互联网 发布:linux 统计ip访问流量 编辑:程序博客网 时间:2024/06/05 16:17

程序员.jpg

本篇文章主要是用做代码分享。代码,注释都写得很清楚,不清楚的可以问我,如果有些不对的地方也可以提出来,以便我及时改正。

接口类

//未使用泛型的栈接口类public interface ISeqStack {    boolean isEmpty();  //判空    boolean isFull();   //判满    boolean push(Object element);   //入栈    Object pop();   //出栈    Object peek();  //查看栈顶元素    void display(); //遍历输出}

顺序栈类

//顺序栈类public class SeqStack implements ISeqStack {    private Object data[];  //存储栈的数据元素    private int top = -1;   //top为栈顶元素下标,默认值是-1,指向栈顶元素    //构造指定容量的空栈    public SeqStack(int capacity) {        this.data = new Object[Math.abs(capacity)];    }    //默认给50个容量    public SeqStack() {        this(50);    }    @Override    public boolean isEmpty() {        // 判空        return top == -1;    }    @Override    public boolean isFull() {        // 判满        return top == data.length-1;    }    @Override    public boolean push(Object element) {        // 入栈        if(isFull() || element == null)            return false;        top++;        data[top] = element;        return true;    }    @Override    public Object pop() {        // 出栈,弹出栈顶元素        if(isEmpty())            return null;        else            return data[top--];    }    @Override    public Object peek() {        // 查看栈顶元素,不移动栈顶指针        if(isEmpty())            return null;        else            return data[top];    }    @Override    public void display() {        // 遍历输出        for(int i = 0; i <= top; i++)            System.out.print(data[i].toString() + " ");        System.out.println();    }   }

测试类

import java.util.*;//测试顺序栈,判断回文串public class TestSeqStack01 {    public static void main(String[] args){        SeqStack stack = new SeqStack(20);        Scanner input = new Scanner(System.in);        System.out.println("输入一串字母或数字,判断是否是回文串:");        String element = input.next();        for(int i = 0; i < element.length(); i++){            stack.push(element.charAt(i));        }        String temp = "";        while(!stack.isEmpty()) {            temp += stack.pop() + "";        }        System.out.println(temp);        if(element.equals(temp))            System.out.println("输入的字符串是回文串 ");        else            System.out.println("输入的字符串不是回文串 ");    }}
原创粉丝点击