`
coolszy
  • 浏览: 1413456 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

栈----静态栈演示算法

阅读更多
/**
 * 静态栈演示代码
 */
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

    "算法演示系统.zip" 提供了一个C语言实现的数据结构可视化工具,对于考生来说是一个宝贵的资源。 1. **链表**:链表是一种动态数据结构,它的元素(节点)不连续存储,而是通过指针连接。C语言中,可以使用结构体来...

    数据结构算法演示各种算法演示

    本资源主要关注于通过C语言来演示各种数据结构和算法,帮助学习者更直观地理解这些概念。下面将详细介绍其中涉及的一些关键知识点。 1. **数据结构**: - **数组**:最基础的数据结构,用于存储相同类型元素的集合...

    数据结构算法动态演示

    通过这个名为“数据结构算法演示”的压缩包,我们可以期待包含一系列针对不同数据结构和算法的动态演示,如链表的插入、删除操作,栈的压栈、弹栈过程,二叉树的遍历(前序、中序、后序),图的DFS和BFS算法等。...

    精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!

    \数据结构flash演示\版本1\9-2-5静态树表的查找.swf \数据结构flash演示\版本1\9-3-1二叉排序树.swf \数据结构flash演示\版本1\9-3-2二叉排序树查找.swf \数据结构flash演示\版本1\9-3-3二叉排序树建立.swf \...

    c语言数据结构算法演示(Windows版)

    在演示算法之前,需先在弹出的小窗口中输入线性表的数据元素及算法参数 i(插入或删除的位置)和 b(被插的数据元素)的值。顺序表的图示窗口在演示屏的上方,链表的图示窗口在左侧。 2. 有序表的操作 算法演示屏的...

    数据结构算法演示系统

    在这个名为“数据结构算法演示系统”的资源中,我们可以看到两个主要的编程语言——Pascal和C被用来实现各种经典的数据结构和算法。以下是这些主题的详细说明: 1. **顺序表**:顺序表是一种线性数据结构,其中元素...

    数据结构算法演示系统(C语言、Pascal语言)

    本资源——“数据结构算法演示系统(C语言、Pascal语言)”提供了一个实践平台,帮助学习者深入理解这两种编程语言中的数据结构实现和算法应用。 在C语言和Pascal语言中,数据结构主要包括数组、链表、栈、队列、树...

    数据结构算法动画演示

    数据结构各种算法动画演示,演示过程展示了算法每执行一步时内存...其中包括顺序表、链表、栈、串、稀疏矩阵、广义表、二叉树、图、存储管理、静态查找、动态查找、内部排序、外部排序等算法的执行过程及内存变化情况。

    数据结构(严蔚敏)算法源码及演示系统

    本资源包含了严蔚敏教授教材中的算法源码以及一个模拟演示系统,对于学习者来说,这是一个极好的实践平台,能够帮助他们直观理解并应用所学知识。 1. **线性表与数组**:线性表是最基础的数据结构之一,包括顺序表...

    数据结构算法演示.zip

    该程序以动画的形式向学习者展示各种算法的执行过程,帮助学习者...包括顺序表、链表、栈、串、稀疏矩阵、广义表、二叉树、图、存储管理、静态查找、动态查找、内部排序、外部排序等。使用语言为C/C++以及Pascal语言。

    VC++6.0开发的算法可视化演示平台

    传统的教学方式往往依赖于文字描述和静态图像,但这种方式对于一些复杂的算法来说,可能难以让学习者直观地理解其运行过程。为了克服这一难题,"VC++6.0开发的算法可视化演示平台"应运而生。该平台利用脚本语言,...

    数据结构算法演示严蔚敏

    通过这些资源,学习者能够从理论到实践,从静态演示到动态操作,全面深入地理解数据结构的原理和应用。在这个过程中,可视化工具和不同编程语言的示例代码相互配合,共同推动学习者提升编程能力和问题解决能力。对于...

    数据结构算法 代码与演示

    在这个"数据结构算法 代码与演示"的资源包中,包含了多种数据结构和算法的实践应用,旨在帮助学习者深入理解和掌握这些基础知识。 首先,我们来逐一探讨这些数据结构: 1. **顺序表**:是最基础的数据结构,其元素...

    数据结构算法演示(软件版)值得收藏

    非常经典的数据结构算法演示软件,包括c语言和PASCAL两种语言的代码实现,包括了数据结构中几乎所有的内容演示:顺序表、链表、栈、串、稀疏矩阵、广义表、二叉树、图、静态查找、动态查找、内部排序、外部排序等……...

    顺序表 广义表 动态查找 静态查找 二叉树 链表 栈 串 稀疏矩阵 储存管理 内部排序 外部排序 数据结构程序演示

    6. **栈**:栈是一种后进先出(LIFO)的数据结构,常用于函数调用、表达式求值等场景。 7. **串**:串是字符的序列,相当于字符串,是处理文本数据的基础。 8. **稀疏矩阵**:稀疏矩阵是大量元素为零的矩阵,为了...

    数据结构和算法Flash动画演示

    本资源"数据结构和算法Flash动画演示"是针对这些关键概念的一个可视化工具,它通过动态、直观的方式帮助学习者掌握数据结构和算法的核心思想。 数据结构主要包括数组、链表、栈、队列、树、图等。数组是最基本的...

    数据结构算法演示

    这些视觉化的演示对于初学者来说,比文字描述或静态图像更容易理解。 此外,动态演示还可能包含了一些高级数据结构,如堆(用于优先队列和某些排序算法)、Trie树(用于高效字符串查找)和B树(常用于数据库索引)...

Global site tag (gtag.js) - Google Analytics