23-咸鱼学Java-Java中的栈
  RewSiEwlJrk7 2023年11月02日 42 0


栈的图示

23-咸鱼学Java-Java中的栈_System


代码

/**
* 栈
* @author 焦焱
*
*/
public class Stack {
/**
* 栈顶标记
*/
int top;
/**
* 栈内元素
*/
int[] elem;
/**
* 无参构造
*/
public Stack()
{
this(10);
}
/**
* 有参构造
* @param size
*/
public Stack(int size) {
this.top = 0;
this.elem = new int[size];
}

/**
* 入栈
* @param val
* @return
*/
public boolean push(int val)
{ //先判断是否满
if(isFull()){
return false;
}
//如果不为空,赋值,并且栈顶往上走一位
this.elem[this.top++] = val;
return true;
}
/**
* 出栈
* @return
*/
public int pop() {
//先判断是否为空
if(isEmpty()){
System.out.println("当前栈为空");
return -1;
}
//返回当前栈顶减一位置的的元素,并且栈顶往下减一。
return elem[--top];
}
/**
* 获得栈顶元素
* @return
*/
public int getTop()
{ //如果为空返回-1,如果
return isEmpty()?-1:elem[this.top-1];
}
/**
* 判断是否满
* @return
*/
public boolean isFull()
{
return top==this.elem.length;
}
/**
* 判断是否空
* @return
*/
public boolean isEmpty()
{
return top==0;
}
/**
* 显示当前栈内所有元素
*/
public void show()
{
System.out.println("\t栈顶------->栈底");
System.out.print("当前栈数据为:");
for (int i = top-1; i >=0; i--) {
System.out.print(elem[i]+" ");
}
System.out.println();
}
}

测试

public static void main(String[] args) {
Stack t = new Stack();
int stackLength = 5;
for (int i = 0; i < stackLength; i++) {
t.push(i);
}
t.show();
for (int i = 0; i < stackLength; i++) {
System.out.println(t.pop()+" ");
}
}

结果
​​​栈顶------->栈底
当前栈数据为:4 3 2 1 0
4
3
2
1
0


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  EhkezVjvcUv6   2023年11月02日   43   0   0 #includei++测试数据
  Fv5flEkOgYS5   2023年11月02日   41   0   0 i++javaide
  Mqh2iumZ9USt   2023年11月02日   36   0   0 #includei++ios
RewSiEwlJrk7
作者其他文章 更多