问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用一维整数数组实现数据结构中的堆栈(Stack)。(用java语言)

发布网友 发布时间:2022-04-27 08:09

我来回答

2个回答

热心网友 时间:2022-06-28 22:14

public class IntStack {

private int[] stack;
private int top;

/**
*初始化栈,传入一个非负的整数,否则抛出一个错误
*/
public IntStack(int size) throws StackErrorException{
if(size<0){
throw new StackErrorException("错误的大小");
}

init(size);
}

private void init(int size) {
stack = new int[size];
top = 0;
}

/**
*判断栈是否为空,true则为空,反之则反
*/
public boolean isEmpty(){
return top==0;
}

/**
*判断栈是否已满,true则已满,反之则反
*/
public boolean isFull(){
return top==stack.length;
}
/**
*向栈顶添加元素,满则抛出异常
*/
public void push(int value) throws StackErrorException{
if(isFull()){
throw new StackErrorException("栈已满");
}
stack[top++] = value;
}
/**
*移除栈顶元素并返回,空则抛出异常
*/
public int pop() throws StackErrorException{
if(isEmpty()){
throw new StackErrorException("已到栈底!");
}
return stack[--top];
}
/**
*返回栈顶元素,空则抛出异常
*/
public int peek() throws StackErrorException{
if(isEmpty()){
throw new StackErrorException("已在栈底!");
}
return stack[top-1];
}
/**
*返回栈大小
*/
public int size(){
return stack.length;
}
class StackErrorException extends Exception{
public StackErrorException(String msg) {
super(msg);
}
}
}

热心网友 时间:2022-06-28 22:15

我没看出来bottom有任何作用...

public class Test{

public static void main(String[] args){
IntStack stack = new IntStack(2);
System.out.println(stack.isEmpty());
stack.push(1);
System.out.println(stack.peek());
stack.push(2);
System.out.println(stack.isFull());
System.out.println(stack.pop());
System.out.println(stack.size());
}
}

class IntStack {
private int[] stack;
private int top = 0;

IntStack(int n) {
stack = new int[n];
}

boolean isEmpty() { return top == 0; }
boolean isFull() { return top == stack.length; }

boolean push(int d) { return isFull() ? false : (stack[top++] = d) == d; }
int pop() {
if (isEmpty()) throw new java.util.NoSuchElementException();
return stack[--top];
}
int peek() {
if (isEmpty()) throw new java.util.NoSuchElementException();
return stack[top - 1];
}

int size() { return top; }
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求这图片原图或者主角 出自哪一边电影或者电视剧 哪位大神知道这张图原版在吗?求原版。。。 在word中加下划线时第一次出现一条下划线第二次怎么就出现两条... 诛仙2资料站里的宠物展示能在npc买到吗 求一些诛仙2中的可以变为人形的宠物名字 诛仙2 神域的神农殿里,这是什么东西 诛仙2宠物元神问题 诛仙2 商城 中 宠物元神 怎么比 宠物 还贵啊?宠物元神是干什么的啊... 电热水器怎么安固定花洒 猛鬼夜惊魂剧情介绍 大宝系列产品的使用顺序 各种树的名称 英文 数据结构(C语言)两个栈共存储在一个长度为n的一维数组中…… 大宝系列的哪个好用? 假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在着两个栈,它们的栈底分别设在数组的两 求世界上各种类型的树的名字和特点? 大宝产品有哪些?每款的具体价格是多少? 各种树木的名称??? 十大墙面漆品牌,大宝漆零纯+系列有几个产品啊? 路上的常见树名称 大宝最出名的产品是什么?用起来如何? 树名有哪些 美丽日记的熊果苷美白面膜好用不? 大宝 产品有哪些 树名有哪些。。。 大宝漆种类,大宝漆种类有哪些 大宝有哪些产品 熊果苷美白有副作用吗? 北方常见树木名称!100个以上! 大宝漆有什么系列 什么树名? 大宝系列产品 设两个栈(stack1,stack2)共享一个一维数组空间s[m],它们的栈底分别设在数组的两端,试编写一个算法, 关于大宝产品 如何用两个堆栈模拟实现一个队列 大宝家的明星产品有哪些? 线性表、栈、队列有何异同? 我19岁,混合性皮肤,适合用大宝的哪些产品呢 试编写一个算法,让两个顺序栈共用一个数组stack[N],分别实现入栈&#92;出栈操作 C语言中的栈、堆是什么? 栈在C中怎么实现? java 任意数据类型 堆栈 堆(heap)和栈(Stack)的区别是什么?为什么平时都把堆栈放在一起讲? R语言中 两个数组元素怎样堆叠 用链表实现堆栈或队列是什么意思 C/C++中字符串数组在堆栈里是怎么分配的?高手请进 C语言版数据结构 关于四则运算的堆栈问题:请高人指出到底哪儿错了 数组和指针在堆栈中的区别,详见下图 汇编语言 堆栈? 一个奇怪的C语言问题,涉及到指针、数组、堆栈、以及printf,希望C语言大神们帮帮忙。