java实现顺序栈

java的顺序栈。

蛮简单的,没啥可研究的。进出栈,取长,判满,判空。

//使用顺序表实现栈
import java.util.Random;
public class se_stack {
    public static void main(String[] args){
        stack s = new stack(1000);
        //使用随机数填满栈,每次都生成一个随机数。
        Random r = new Random();
        for(int i=0;i<1000;i++){
            s.push_stack(r.nextInt(100));
        }
        System.out.println("栈此时长度为:" + s.get_length());
        s.print_stack();
        System.out.println("===================================");
        System.out.println("弹出一个元素:"+ s.pop_stack());
        System.out.println("===================================");
        s.print_stack();
    }
}
class stack{
    //类属性一个数组。
    int[] arry;
    //类属性一个栈顶指针。
    int p;
    //构造器默认设置栈最大长度为100。
    stack(){
        this.arry = new int[100];
        this.p = 0;
    }
    //构造器读取用户设定长度。
    stack(int n){
        this.arry = new int[n];
        this.p = 0;
    }
    //判满
    boolean is_full(){
        return p == arry.length;
    }
    //判空
    boolean is_empty(){
        return p == 0;
    }
    //进栈一个元素
    boolean push_stack(int num){
        if(is_full()){
            System.out.println("表已经满了,拉胯了。麻烦您初始化时容量整大点。");
            return false;
        }
        arry[p] = num;
        p++;
        return true;
    }
    //出栈一个元素
    int pop_stack(){
        if(is_empty()){
            System.out.println("栈已经空了,别弹了!");
            System.exit(-1);
        }
        p--;
        return arry[p];
    }
    //取栈长度
    int get_length(){
        return p;
    }
    //取数组
    int[] get_arry(){
        return arry;
    }
    //打印栈
    void print_stack(){
        if(is_empty()){
            System.out.println("栈空的,啥也不是。");
            System.exit(-1);
        }
        System.out.println("-----------------------------打印栈-------------------------------");
        for(int i=0;i<get_length();i++){
            System.out.print(arry[i]+" ");
        }
        System.out.println(" ");
        System.out.println("-----------------------------打印结束-----------------------------");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值