/**
* 静态栈演示代码
*/
package com.szy.structure.stack;
import java.util.Scanner;
public class StaticStack {
private final int SIZE=5;
private int top;
private int[] stackArray=null;
StaticStack(){
top=-1;
stackArray=new int[SIZE];
}
/**
* 检查栈是否已满
* @return
*/
public boolean isFull()
{
if (top==SIZE-1) {
return true;
}
return false;
}
/**
* 检查栈是否为空
* @return
*/
public boolean isEmpty()
{
if (top==-1) {
return true;
}
return false;
}
/**
* 压栈
* @param info
*/
public void push(int info){
top++;
stackArray[top]=info;
System.out.println(info+" 被压入栈中");
}
/**
* 出栈
*/
public void pop(){
System.out.println(stackArray[top]+" 出栈成功");
top--;
}
/**
* 输出栈中信息
*/
public void display(){
if (isEmpty()) {
System.out.println("空栈");
}
else {
System.out.println("栈中信息:");
for(int i=top;i>-1;i--){
System.out.print(stackArray[i]+" ");
}
System.out.println("\n");
}
}
public static void main(String[] args) throws Exception {
StaticStack stack=new StaticStack();
int choice=0;
while(true)
{
System.out.println("---MENU---");
System.out.println("1.Push");
System.out.println("2.Pop");
System.out.println("3.Display");
System.out.println("4.Exit");
System.out.println("----------");
System.out.println("请选择:");
Scanner scanner=new Scanner(System.in);
choice=scanner.nextInt();
switch (choice) {
case 1:
{
if (stack.isFull()) {
System.out.println("栈已满!");
break;
}
System.out.println("请输入数字:");
int input=scanner.nextInt();
stack.push(input);
}
break;
case 2:
{
if (stack.isEmpty()) {
System.out.println("空栈!");
break;
}
stack.pop();
}
break;
case 3:
{
stack.display();
}
break;
case 4:
return;
default:
System.err.println("无效的输入!");
break;
}
}
}
}
分享到:
相关推荐
在这个“数据结构算法演示系统”中,重点是利用D语言实现对数据结构和算法的可视化演示。 首先,我们要了解D语言。D语言是一种静态类型的、通用的、面向对象的编程语言,它具有高性能、现代语法、模板元编程以及...
"算法演示系统.zip" 提供了一个C语言实现的数据结构可视化工具,对于考生来说是一个宝贵的资源。 1. **链表**:链表是一种动态数据结构,它的元素(节点)不连续存储,而是通过指针连接。C语言中,可以使用结构体来...
本资源主要关注于通过C语言来演示各种数据结构和算法,帮助学习者更直观地理解这些概念。下面将详细介绍其中涉及的一些关键知识点。 1. **数据结构**: - **数组**:最基础的数据结构,用于存储相同类型元素的集合...
通过这个名为“数据结构算法演示”的压缩包,我们可以期待包含一系列针对不同数据结构和算法的动态演示,如链表的插入、删除操作,栈的压栈、弹栈过程,二叉树的遍历(前序、中序、后序),图的DFS和BFS算法等。...
\数据结构flash演示\版本1\9-2-5静态树表的查找.swf \数据结构flash演示\版本1\9-3-1二叉排序树.swf \数据结构flash演示\版本1\9-3-2二叉排序树查找.swf \数据结构flash演示\版本1\9-3-3二叉排序树建立.swf \...
在演示算法之前,需先在弹出的小窗口中输入线性表的数据元素及算法参数 i(插入或删除的位置)和 b(被插的数据元素)的值。顺序表的图示窗口在演示屏的上方,链表的图示窗口在左侧。 2. 有序表的操作 算法演示屏的...
在这个名为“数据结构算法演示系统”的资源中,我们可以看到两个主要的编程语言——Pascal和C被用来实现各种经典的数据结构和算法。以下是这些主题的详细说明: 1. **顺序表**:顺序表是一种线性数据结构,其中元素...
本资源——“数据结构算法演示系统(C语言、Pascal语言)”提供了一个实践平台,帮助学习者深入理解这两种编程语言中的数据结构实现和算法应用。 在C语言和Pascal语言中,数据结构主要包括数组、链表、栈、队列、树...
数据结构各种算法动画演示,演示过程展示了算法每执行一步时内存...其中包括顺序表、链表、栈、串、稀疏矩阵、广义表、二叉树、图、存储管理、静态查找、动态查找、内部排序、外部排序等算法的执行过程及内存变化情况。
本资源包含了严蔚敏教授教材中的算法源码以及一个模拟演示系统,对于学习者来说,这是一个极好的实践平台,能够帮助他们直观理解并应用所学知识。 1. **线性表与数组**:线性表是最基础的数据结构之一,包括顺序表...
该程序以动画的形式向学习者展示各种算法的执行过程,帮助学习者...包括顺序表、链表、栈、串、稀疏矩阵、广义表、二叉树、图、存储管理、静态查找、动态查找、内部排序、外部排序等。使用语言为C/C++以及Pascal语言。
传统的教学方式往往依赖于文字描述和静态图像,但这种方式对于一些复杂的算法来说,可能难以让学习者直观地理解其运行过程。为了克服这一难题,"VC++6.0开发的算法可视化演示平台"应运而生。该平台利用脚本语言,...
通过这些资源,学习者能够从理论到实践,从静态演示到动态操作,全面深入地理解数据结构的原理和应用。在这个过程中,可视化工具和不同编程语言的示例代码相互配合,共同推动学习者提升编程能力和问题解决能力。对于...
在这个"数据结构算法 代码与演示"的资源包中,包含了多种数据结构和算法的实践应用,旨在帮助学习者深入理解和掌握这些基础知识。 首先,我们来逐一探讨这些数据结构: 1. **顺序表**:是最基础的数据结构,其元素...
非常经典的数据结构算法演示软件,包括c语言和PASCAL两种语言的代码实现,包括了数据结构中几乎所有的内容演示:顺序表、链表、栈、串、稀疏矩阵、广义表、二叉树、图、静态查找、动态查找、内部排序、外部排序等……...
6. **栈**:栈是一种后进先出(LIFO)的数据结构,常用于函数调用、表达式求值等场景。 7. **串**:串是字符的序列,相当于字符串,是处理文本数据的基础。 8. **稀疏矩阵**:稀疏矩阵是大量元素为零的矩阵,为了...
本资源"数据结构和算法Flash动画演示"是针对这些关键概念的一个可视化工具,它通过动态、直观的方式帮助学习者掌握数据结构和算法的核心思想。 数据结构主要包括数组、链表、栈、队列、树、图等。数组是最基本的...
这些视觉化的演示对于初学者来说,比文字描述或静态图像更容易理解。 此外,动态演示还可能包含了一些高级数据结构,如堆(用于优先队列和某些排序算法)、Trie树(用于高效字符串查找)和B树(常用于数据库索引)...