java 顺序栈_Java实现顺序栈

本文介绍了如何在Java中实现顺序栈,包括初始化、销毁、清空栈、检测栈是否为空、获取栈长度、获取栈顶元素、压入元素、弹出元素以及遍历顺序栈等基本操作。顺序栈使用数组作为存储结构,并通过一个指针top指示栈顶位置。代码详细展示了各个操作的实现细节。
摘要由CSDN通过智能技术生成

一、分析

栈是限定仅在表的一端进行插入或删除操作的线性表,对于栈来说,操作端称为栈顶,另一端则称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表。

顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。

一个标准的顺序栈具有如下基本操作:

1、初始化顺序栈

2、销毁顺序栈

3、清空顺序栈

4、检测顺序栈是否为空

5、返回顺序栈中的元素个数

6、返回顺序栈的栈顶元素,不修改栈顶指针

7、向顺序栈顶中压入元素

8、从顺序栈顶中弹出元素

9、从栈底到栈顶遍历顺序栈

在Java中,可以将整个顺序栈定义成一个类,类中定义有一个数组类型的属性表示顺序存储结构来存储元素,再定义一个int类型的属性top来作为指针指示栈顶元素在数组中的位置,顺序栈的基本操作则定义成类的方法。初始化顺序栈即实例化类,销毁顺序栈即销毁实例化出来的对象。

二、实现

1、定义类属性和构造函数

1 classInitStack{2

3 private int [] stack = null;     //存储元素

4

5 private int top = 0;          //指示栈顶元素在顺序栈中的位置

6

7 public InitStack(int max) {      //初始化自定义大小的顺序栈

8 this.stack = new int[max];9 }10 }

2、清空顺序栈

1 public voidclearStack() {2 this.top = 0;         //直接令栈顶指针指向栈底即可

3 }

3、检测顺序栈是否为空

1 public booleanstackEmpty() {2 if(this.top == 0) {       //检测栈顶指针是否指向栈底即可

3 return true;4 }else{5 return false;6 }7 }

4、返回顺序栈中的元素个数

1 public intstackLength() {2 return this.top;       //栈顶指针的值即代表了元素个数

3 }

5、返回顺序栈的栈顶元素,不修改栈顶指针

1 public int[] getTop() {2

3 if (this.top == 0) {       //如果顺序栈为空,则返回空

4 return null;5 }6

7 int [] i = new int[1];8 i[0] = stack[this.top - 1];   //获取栈顶元素

9

10 returni;11 }

6、向顺序栈顶中压入元素

1 public boolean push(intvalue) {2

3 if(this.top == this.stack.length) {   //判断顺序栈是否已满

4 return false;5 }6

7 this.stack[this.top] = value;       //压入元素

8 this.top++;                 //栈顶指针加一

9 return true;10 }

7、从顺序栈顶中弹出元素

1 public int[] pop() {2

3 if (this.top == 0) {     //判断顺序栈是否已空

4 return null;5 }6

7 int [] i = new int[1];8 this.top--;           //栈顶指针减一

9 i[0] = stack[this.top];   //获取栈顶元素

10 returni;11 }

8、从栈底到栈顶遍历顺序栈

1 public String stackTraverse() {           //通过输出顺序栈元素来表示遍历

2

3 String s = "";                   //存储要输出的元素

4

5 for (int i = 0; i < this.top; i++) {     //循环遍历

6 s += this.stack[i] + "、";7 }8

9 if(s.length() == 0) {              //如果未获取到元素,返回空字符串

10 returns;11 }12

13 return s.substring(0,s.length() - 1);    //除去最后一个顿号后返回

14 }

三、小结

以上就是顺序栈用Java的实现,由于只定义了整数的数组,因此只能操作整数数据,但顺序栈的基本思想都已实现。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值