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

栈----动态栈演示算法

阅读更多
/**
 * 动态栈演示代码
 */
package com.szy.structure.stack;

import java.util.Scanner;

public class DynamicStack {
	private Node TOP;
	
	DynamicStack(){
		TOP=null;
	}
	/**
	 * 判断栈是否为空
	 * @return
	 */
	public boolean isEmpty(){
		if(null==TOP){
			return true;
		}
		return false;
	}
	/**
	 * 压栈
	 * @param info
	 */
	public void push(int info) {
		Node newNode=new Node();
		newNode.info=info;
		newNode.next=TOP;
		TOP=newNode;
		System.out.println(info+" 被压入栈中");
	}
	/**
	 * 出栈
	 */
	public void pop() {
		System.out.println(TOP.info+" 出栈成功");
		TOP=TOP.next;
	}
	/**
	 * 输出栈中信息
	 */
	public void display() {
		if (isEmpty()) {
			System.out.println("空栈");
		}
		else {
			System.out.println("栈中信息:");
			for (Node temp=TOP;temp!=null;temp=temp.next) {
				System.out.println(temp.info+"  ");
			}
			System.out.println("\n");
		}
	}
	
	public static void main(String[] args) throws Exception{
		DynamicStack stack=new DynamicStack();
		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:
			{
				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;
			}
		}
	}
}

//声明节点
class Node{
	public int info;
	public Node next;
}

 

分享到:
评论

相关推荐

    数据结构算法动态演示软件

    本课件是一个动态演示数据结构算法执行过程的辅助教学软件, 它可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行...

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

    本资源——“数据结构和算法-Flash动画演示”提供了一种生动形象的方式来学习这些核心概念。通过Flash动画,你可以直观地看到各种算法的动态执行过程,使得抽象的理论变得易于理解。 1. **查找算法**:查找算法是在...

    数据结构算法动态演示

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

    汉诺塔演示---算法分析与设计 实验作业

    在“汉诺塔演示---算法分析与设计 实验作业”中,你可能会学习到以下关键知识点: 1. **递归算法**:汉诺塔问题的解决方案是通过递归函数实现的。基本思想是将大问题分解为更小的相似子问题,直到子问题简单到可以...

    超好的数据结构学习资料--算法动画演示

    本资源包中的“算法动画演示”将覆盖这些重要的数据结构和算法,用动态的方式展示它们的工作原理。例如,你可以看到数组插入和删除的过程,链表的遍历,栈的压入和弹出,队列的入队和出队,二叉树的搜索和遍历,以及...

    数据结构算法动态演示设计

    以下是对这个“数据结构算法动态演示设计”系统的详细解析。 首先,数据结构是计算机存储、组织数据的方式,包括数组、链表、栈、队列、树、图等。每种数据结构都有其特定的插入、删除和查找操作,以及优化这些操作...

    java数据结构和算法图形演示操作--使用javaapplet进行演示

    总的来说,这个压缩包包含的WorkshopApplets可能是一系列用Java编写的Applet程序,用于演示数据结构(如栈、队列、树等)和算法(如排序、查找等)的图形化过程。通过这些互动的示例,学习者能够以更直观的方式学习...

    各种算法的Flash演示

    本资源"各种算法的Flash演示"提供了一种直观且生动的方式来理解这些复杂的概念。通过Flash动画,用户能够看到算法的实际运行过程,这对于学习和教学都是极其有价值的。 1. **排序算法**:包括冒泡排序、插入排序、...

    数据结构动态演示程序------严蔚敏版本

    动态演示可以帮助我们直观地看到这些算法的工作过程,比如元素如何在排序过程中交换位置,查找过程中如何快速定位目标等。 对于树结构,二叉搜索树、平衡树(AVL树、红黑树)等都是重点。动态演示可能包括树的插入...

    算法动态演示系统 数据结构, 算法 学习 模拟,代码

    这个"算法动态演示系统"显然是为了帮助学习者更好地理解和掌握这些核心概念。通过模拟和动态演示,学习者可以直观地看到算法在执行过程中的状态变化,这对于深化理解、提升问题解决能力大有裨益。 首先,我们要明白...

    算法演示-严蔚敏版数据结构

    《算法演示-严蔚敏版数据结构》是针对严蔚敏教授编著的《数据结构》一书中的算法实现进行的详细展示。这本书是计算机科学与技术领域内的一本经典教材,尤其对于学习和理解数据结构及算法有着极其重要的意义。在C语言...

    migong.rar_动态演示_数据结构 演示_栈 演示

    标题“migong.rar_动态演示_数据结构演示_栈演示”表明我们将通过动态的可视化方式来理解数据结构中的栈是如何工作的,特别是针对迷宫问题。动态演示可以直观地展示每一步的操作,使学习者更好地理解算法的运行过程...

    数据结构+算法+动态演示

    "数据结构+算法+动态演示"这个工具正是为了帮助学习者通过C语言深入理解这些概念而设计的。 在数据结构方面,这个工具可能涵盖数组、链表、栈、队列、树(如二叉树、AVL树、红黑树等)、图以及哈希表等常见类型。...

    数据结构(C语言)+算法+动态演示.rar

    本资源"数据结构(C语言)+算法+动态演示.rar"集合了这三个关键领域,为学习者提供了全面的学习材料。 数据结构是组织和管理数据的方式,包括数组、链表、栈、队列、树(如二叉树、堆)、图等。在C语言中,通过指针和...

    数据结构算法演示系统-可视化算法

    在这个“数据结构算法演示系统”中,重点是利用D语言实现对数据结构和算法的可视化演示。 首先,我们要了解D语言。D语言是一种静态类型的、通用的、面向对象的编程语言,它具有高性能、现代语法、模板元编程以及...

    数据结构算法演示--不可多得的

    这个压缩包文件“数据结构算法演示”显然提供了一个实用的平台,用于理解和实践各种数据结构及其对应的算法。这里我们将深入探讨数据结构的一些关键类型以及它们在算法中的应用。 1. **数组**:最基础的数据结构,...

    数据结构的算法演示系统

    在算法演示系统中,你可以看到数组的动态插入、删除和查找过程,这有助于理解数组的效率和限制。 链表是另一种常用的数据结构,尤其是单链表和双链表。它们与数组不同,因为它们的元素在内存中可能不是连续的,而是...

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

    在这个压缩包中,"数据结构算法演示"可能包含了一系列的实例,用于直观地展示这些概念。数据结构是存储和组织数据的方式,而算法则是解决问题或执行任务的明确步骤。 1. **线性数据结构**:包括数组、链表、栈和...

Global site tag (gtag.js) - Google Analytics