`
jingle1267
  • 浏览: 12438 次
文章分类
社区版块
存档分类
最新评论

设计一个堆栈类

 
阅读更多
//Stack.java
import java.util.Scanner;
class Stack{
private int[] st;
private int pt;
public Stack(int len){
st=new int[len];
}
public void put(int x)throws ArrayIndexOutOfBoundsException{
st[pt++]=x;
}
public int pop()throws ArrayIndexOutOfBoundsException{
return st[--pt];
}
}
//StackTest.java
import java.util.Scanner;
public class StackTest{
private static Scanner sc=new Scanner(System.in);
private static int menu(){
System.out.println("1.入栈");
System.out.println("2.出栈");
System.out.println("3.退出程序");
return sc.nextInt();
}
public static void main(String[] args){
boolean go=true;
System.out.println("请输入一个整数,初始化堆栈的容量:");
int size=sc.nextInt();
try{
Stack s=new Stack(size);
while(go){
int option=menu();
switch(option){
case 1:
System.out.println("请输入一个整数:");
int num=sc.nextInt();
s.put(num);
break;
case 2:
System.out.println(s.pop());
break;
case 3:
go=false;
break;
default:
System.out.println("输入有误");
}
}
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("堆栈溢出");
}
}
}
分享到:
评论

相关推荐

    模板设计堆栈类

    用模板设计堆栈类,具有如下功能: (1) 堆栈空间的大小由用户指定。 (2) 可以完成入栈、出栈操作。 (3) 可以访问堆栈的所有数据。 (4) 通过整型、实型和复数类型分别测试上述功能。

    堆栈应用题

    堆栈应用题是软件操作中常用的撤销/重做(Undo/Redo)机制的实现,通过设计一个堆栈类,实现对文件路径和文件名的存储和管理。下面是该堆栈类的详细设计和实现: 1. 类设计: 堆栈类是一个基本的数据结构,用于存储...

    堆栈类的实现(C++源代码)

    给定的C++源代码实现了堆栈类`Cstack`,其中包含一个字符数组`stk`用于存储堆栈中的元素,以及一个整型变量`position`用于追踪堆栈顶部的位置。以下是源代码的关键部分: ```cpp #include using namespace std; ...

    堆栈应用题 代码

    本题要求设计一个堆栈类来实现撤销/重做的功能,这涉及到对堆栈的操作以及与用户交互的实现。 首先,我们需要理解撤销和重做的概念。撤销功能允许用户取消最近一次的操作,而重做则能恢复已经被撤销的操作。在软件...

    堆栈类设计

    堆栈类设计是数据结构学习中的一个重要组成部分,通过本节内容,我们将详细了解如何使用C++语言实现一个基本的堆栈类。 #### 二、堆栈类设计的核心概念 ##### 1. 基本属性 堆栈类通常包含以下几个关键属性: - **`...

    堆栈类的实现

    堆栈类的实现,c++头文件,还有一些需要修改的地方

    MyStack 一个堆栈的模板类

    在C++中,我们可以自定义堆栈模板类来实现特定类型的堆栈操作,本文将围绕标题“MyStack 一个堆栈的模板类”展开,探讨其设计思想和主要功能。 MyStack是一个用户自定义的堆栈模板类,它允许用户存储任意类型的数据...

    C++课程设计计划书

    - 设计一个堆栈类模板`Stack`,用类型参数`T`表示栈中存放的数据类型,用非类型参数`MAXSIZE`代表栈的大小。 - **关键知识点**: - 模板的概念与优势。 - 类模板的定义与实例化。 - 参数化类型的选择与约束。 ...

    2013(1)复试1

    第二题要求设计一个堆栈类,实现入栈、出栈、判空和判满的操作,这要求考生理解堆栈的基本操作和原理。第三题与广度优先遍历相关,考生需要根据给出的代码补全空白,体现对队列和图遍历的理解。第四题是实际的程序...

    堆栈类Stack的C++实现

    在这个堆栈类Stack的C++实现中,我们将探讨如何设计并实现一个功能完善的堆栈类,以及如何在实际编程中应用这些概念。 首先,堆栈的基本操作包括: 1. **初始化**:创建一个空的堆栈。 2. **入栈(push)**:将...

    模板堆栈类

    - **应用场景**:模板堆栈类非常适合于需要处理不同数据类型的场景,例如算法设计中的栈操作、编译器设计中的符号表管理等。 - **优势**:由于采用了模板机制,因此可以在不修改类定义的情况下支持任意数据类型,极...

    链式结构堆栈类的类模板实现及用栈求解n皇后问题.zip

    在这个压缩包文件“链式结构堆栈类的类模板实现及用栈求解n皇后问题.zip”中,我们可能会找到一个关于如何使用链式结构实现堆栈类模板以及如何利用这个堆栈解决经典的N皇后问题的详细示例。 首先,让我们来深入了解...

    以C++类的方式实现整型元素堆栈(stack)数据结构

    通过以上实现,我们创建了一个完整的C++整型元素堆栈类。这个类不仅包含了基本的堆栈操作,还具备了动态扩容的能力。在实际编程中,这样的自定义数据结构可以灵活地应用于各种算法和问题解决中。例如,在深度优先...

    堆栈——用类的方法实现C++

    压入操作是将一个元素添加到堆栈的顶部,而弹出操作则是移除并返回堆栈顶部的元素。除此之外,我们还需要查看堆栈顶部的元素(peek)而不实际移除它,以及检查堆栈是否为空(isEmpty)。 在C++中,我们可以创建一个...

    调用堆栈的类

    要实现一个获取调用堆栈的类,通常会涉及到以下几个关键步骤: 1. **堆栈回溯**:这是获取调用堆栈信息的核心过程。在C++中,可以使用`__builtin_frame_address`和`__builtin_return_address`这两个编译器内置函数...

    堆栈的C++实现!!!

    在C++中实现堆栈可以利用STL(标准模板库)中的`stack`容器,但也可以自定义一个堆栈类来更好地理解和控制其内部操作。本文将详细介绍如何使用C++实现一个简单的堆栈类。 首先,让我们了解堆栈的基本操作: 1. **...

    用堆栈结构(C++)实现中缀表达式转换

    - 如果当前运算符的优先级更低或相等,将堆栈顶的运算符弹出并添加到后缀表达式,直到找到一个优先级更低的运算符或者堆栈为空。然后,将当前运算符压入堆栈。 4. 遇到左括号“(”时,将其压入堆栈。 5. 遇到右...

    堆栈的创建,出栈,入栈等操作

    创建一个空堆栈的基本语法是: ```cpp #include std::stack<int> myStack; ``` 这将创建一个可以存储整数的堆栈。如果你想使用自定义的数据结构,你可以提供一个容器作为模板参数,例如`std::deque`或`std::...

    C#-堆栈计算器

    在设计堆栈计算器时,我们通常会创建一个类`CalculatorStack`,该类包含两个主要部分:一个是存储数值的堆栈,另一个是执行运算的操作方法。这个计算器可以处理基本的四则运算,如加、减、乘、除,以及可能的括号...

    数据结构之堆栈的使用

    在这个程序中,"MyStack"很可能是一个自定义的堆栈类,可能包含了初始化、压栈、弹栈等基本操作的实现。这样的自定义堆栈类有助于更好地控制数据结构和提高代码效率。 堆栈在计算机科学中有多种应用,如表达式求值...

Global site tag (gtag.js) - Google Analytics