首页 > 代码库 > Java数据结构系列之——栈(1):栈的顺序存储结构及操作
Java数据结构系列之——栈(1):栈的顺序存储结构及操作
package Stack; /** * 栈的定义:限定只在表末尾进行增加和删除操作的线性表 * 栈的特点:先进后出FILO(First In Last Out) * 通常我们把允许插入和删除的一段称为栈顶(top),另一端 * 称为栈底,不包含任何元素的栈称为空栈 * 栈的出栈操作我们一般称为进栈或者压栈或者入栈 * 栈的删除操作我们一般称为出栈或者弹栈 * * 这里我们用数组来实现栈的顺序存储结构及各种操作 * @author wl * */ public class MyStack { private int[] array;//用来存放栈的元素 private int top;//栈顶指针 /** * 默认构造函数,用于初始化栈,这里我们 * 将栈的大小默认初始化为10 */ public MyStack(){ array=new int[10]; top=-1; } /** * 自定义构造函数,可以用于指定栈的初始化 * 空间大小 */ public MyStack(int capacity){ array=new int[capacity]; top=-1; } /* * 压栈操作 */ public void push(int value){ if(isFull()){//栈满 throw new RuntimeException("栈已满,元素'"+value+"'压栈不成功"); } array[++top]=value; } public int peek(){ if(isEmpty()){//如果栈为空 throw new RuntimeException("栈中元素为空"); } return array[top]; } /** * 出栈操作 * @return */ public int pop(){ if(isEmpty()){//如果栈为空 throw new RuntimeException("栈中元素为空"); } return array[top--]; } /** * 判断栈是否为空 * @return */ public boolean isEmpty(){ return top==-1; } /** * 判断栈是否满了 */ public boolean isFull(){ return top==array.length-1; } }
Java数据结构系列之——栈(1):栈的顺序存储结构及操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。