数据结构-----栈的实现
来源:互联网 发布:淘宝电脑主机便宜原因 编辑:程序博客网 时间:2024/05/21 19:42
1、定义数据元素类 Data
package stack;public class Data {int stuId; //学生IDString stuName; //学生姓名public Data(int stuId, String stuName) {super();this.stuId = stuId;this.stuName = stuName;}@Overridepublic String toString() {return "stuId=" + stuId + ", stuName=" + stuName ;}}2、定义栈结构类 StackType
package stack;public class StackType {static final int MAX_SIZE = 50; Data[] data = new Data[MAX_SIZE]; int top;public StackType(){this.top = -1; //初始化栈顶}/** * 判断是否空栈 * @return */public boolean stackIsEmpty(StackType st){return st.top==-1;}/** * 判断是否满栈 * 当栈顶引用值为MAX_SIZE-1时表示满栈了 * @param st * @return */public boolean stackIsFull(StackType st){return st.top==MAX_SIZE-1;}/** * 清空栈 * 栈顶引用值为-1表示一个空栈 * @param st * */public boolean stackClear(StackType st){if(st!=null){st.top = -1;return true;}return false;}/** * 释放栈 * @param st */public void stackFree(StackType st){if(st!=null){st = null;System.out.println("栈已释放");}}/** * 入栈 * @param st * @param data * @return */public boolean stackPush(StackType st,Data data){if(st.top>=MAX_SIZE-1){System.out.println("栈溢出,入栈失败!");return false;}st.data[++st.top] = data;return true;}/** * 出栈 * @param st * @return */public Data stackPop(StackType st){Data data;if(st.top==-1){System.out.println("栈为空");return null;}data = st.data[st.top--];return data;}/** * 读栈顶的元素 * @param st * @return */public Data stackPeek(StackType st){if(st.top==-1){System.out.println("栈为空");return null;}return st.data[st.top];}}3、测试类 TestStack
package stack;public class TestStack {public static void main(String[] args) {StackType st = new StackType();for(int i=1;i<=50;i++){Data data= new Data(i,String.valueOf(i));st.stackPush(st, data);}System.out.println("栈是否为空?"+st.stackIsEmpty(st));System.out.println("栈是否已满?"+st.stackIsFull(st));System.out.println("栈顶元素:"+st.stackPeek(st));System.out.println("出栈:"+st.stackPop(st));System.out.println("出栈:"+st.stackPop(st));System.out.println("栈顶元素:"+st.stackPeek(st));System.out.println("清空栈:"+st.stackClear(st));System.out.println("将栈清空后再出栈:"+st.stackPop(st));st.stackFree(st);}}
4、测试结果
0 0
- 数据结构 --栈的实现
- 数据结构:栈的实现
- 数据结构-----栈的实现
- 数据结构-----栈的实现
- 【数据结构】栈的实现
- 数据结构-栈的实现
- 数据结构,关于栈的实现
- Java 数据结构----栈的实现
- 数据结构中栈的实现
- Java数据结构--栈的实现
- 数据结构之栈的实现
- 数据结构-链式栈的实现
- 数据结构 一、栈的实现
- 【数据结构】栈-数组的实现
- [数据结构] 栈的数组实现
- [数据结构] 栈的指针实现
- 数据结构栈的C++实现
- 表达式--栈的实现(数据结构)
- yii 应用组件
- 窥探Swift编程之错误处理与异常抛出
- android MVVM实践
- 滚动选择器PickerView
- 自动化测试常用断言的使用方法(python)
- 数据结构-----栈的实现
- hdoj 1437 天气情况
- 获取数组中出现次数最多的字母(使用对象的方法)
- 第五周项目2(1)
- 插入排序
- JDBC事务控制管理
- Android Studio集成友盟SDK出现的问题解决及原因分析
- 常用排序算法解析
- Python入门基本语法