栈的Java实现

 1 public class Stack {
 2     private int maxSize=2;//栈容量,初始为2,(用于表达式求值,操作数栈)
 3     private int top=-1;//栈顶指针
 4     private int[] data=new int[maxSize];//数据
 5     //判空
 6     public boolean IsEmpty(){
 7         if(top==-1)
 8             return true;
 9         else
10             return false;
11     }
12     //判满
13     public boolean IsFull(){
14         if(top==maxSize-1)
15             return true;
16         else
17             return false;
18     }
19     //圧栈
20     public boolean Push(int elem){
21         if(IsFull())
22             return false;
23         else{
24             data[++top]=elem;
25             return true;
26         }
27     }
28     //出栈
29     public int Pop(){
30         if(IsEmpty()){
31             return -65535;
32         }
33         else{
34             return data[top--];
35         }
36     }
37 }

总结:

  1. 类成员变量要赋初值(习惯)
  2. maxSize在C++中使用了宏定义,在Java中数组不需要预先设定长度,但一旦设定也无法更改,待改进(使用静态变量)
  3. 线性栈,via2015冬考研
时间: 2024-10-25 09:26:20

栈的Java实现的相关文章

栈的Java实现--链栈

栈的Java实现--链栈 链栈,顾名思义,就是以链表的形式实现的栈的相关操作,其实是功能弱化了的链表,如果已经阅读过链表的实现代码,那么链栈的实现显得更为容易. 链栈的基本结构: 链栈的入栈操作: 让top引用指向新的节点,新节点的next指向原来的top 记录栈内元素个数的size+1 链栈的出栈操作: top引用指向原栈顶元素的下一个元素(top.next),并释放原栈顶元素的引用 记录栈内元素个数的size-1 链栈的Java实现代码: package com.liuhao.DataStr

两个栈实现一个队列以及两个队列实现一个栈(Java)

两个栈实现一个队列 import java.util.Stack; public class Demo07 { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.push(node); } public int pop() { if(stack2.size

“全栈2019”Java第一章:安装JDK11(Mac)

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 文章原文链接 "全栈2019"Java第一章:安装JDK11(Mac) 下一章 "全栈2019"Java第二章:安装JDK11(Windows) 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组". 全栈工程师学习计划 关

“全栈2019”Java第五章:IntelliJ IDEA代码自动提示

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第五章:IntelliJ IDEA代码自动提示 下一章 "全栈2019"Java第六章:注释 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&quo

“全栈2019”Java第七章:IntelliJ IDEA注释快捷键

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七章:IntelliJ IDEA注释快捷键 下一章 "全栈2019"Java第八章:IntelliJ IDEA设置注释不显示在行首 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,

“全栈2019”Java第八章:IntelliJ IDEA设置注释不显示在行首

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第八章:IntelliJ IDEA设置注释不显示在行首 下一章 "全栈2019"Java第九章:解释第一个程序 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Jav

“全栈2019”Java第九章:解释第一个程序

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九章:解释第一个程序 下一章 "全栈2019"Java第十章:关键字 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组". 全栈工程师学习

“全栈2019”Java第十章:关键字

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第十章:关键字 下一章 "全栈2019"Java第十一章:标识符 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组". 全栈工程师学习计划

“全栈2019”Java第十六章:下划线在数字中的意义

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第十六章:下划线在数字中的意义 下一章 "全栈2019"Java第十七章:赋值运算符和算术运算符 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&q

“全栈2019”Java第十七章:赋值运算符和算术运算符

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第十七章:赋值运算符和算术运算符 下一章 "全栈2019"Java第十八章:一元运算符 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组".