`
liubey
  • 浏览: 107264 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

数据结构 栈

阅读更多
1.在push(入栈)的时候,是先移动在顶端的箭头(+1),然后才插入数据。
2.在pop(出栈)的时候,是先把数据移除,然后使箭头下移一位(-1),
入栈和出栈的操作步骤正好相反。

比如stack是一个栈,top是其下标,如果要插入i到其栈中
则stact[++top] = i;
出栈则是stack[top--]

简单代码示例
package com.javaeye.liubey.algorithm.stack;

import org.lx.print.Print;

/**
 * 
 * 项目名称:algorithm      
 * 包名称:com.javaeye.liubey.algorithm.stack  
 * 类名称:Stack.java 
 * 描述:  简单的栈测试类 使用数据模仿
 * 创建人:Eason.Lau   
 * 创建时间:2010-7-16 下午03:11:41
 * Copyright http://liubey.iteye.com/    
 * @version    
 *
 */
public class Stack {
	public static void main(String[] args) {
		StackX stack = new StackX(10);
		stack.push(10);
		stack.push(20);
		stack.push(30);
		stack.push(40);
		
		//循环输出 
		while(!stack.isEmpty()) {
			long value = stack.pop();
			Print.printlnMeWithoutString(value);
		}
	}

}

/*
 * 使用数组模仿栈
 */
class StackX {
	private int maxSize;//最大容量
	private long[] arrayStack;
	private int top;//栈顶
	
	public StackX(int n) {
		maxSize = n;
		arrayStack = new long[maxSize];
		top = -1;
	}
	
	//入栈
	public void push(long j) {
		arrayStack[++top] = j;
	}
	
	//出栈
	public long pop() {
		return arrayStack[top--];
	}
	
	//查看
	public long view() {
		return arrayStack[top];
	}
	
	//栈是否是空
	public boolean isEmpty() {
		return (top == -1);
	}
	
	
	//栈是否满了
	public boolean isFull() {
		return (top == maxSize - 1);
	}
}


最主要的还是入栈和出栈两个方法,printlnMeWithoutString就是简单打印的工具类,没什么,就是不爱输入Sys....而省事
分享到:
评论

相关推荐

    数据结构栈和队列(参考代码)

    ### 数据结构栈和队列知识点解析 #### 一、栈的基本概念与操作 **栈**是一种特殊的线性表,只允许在一端进行插入和删除操作,这一端被称为栈顶,另一端被称为栈底。栈遵循先进后出(First In Last Out, FILO)的...

    数据结构栈和队列试题及答案

    ### 数据结构之栈和队列知识点详解 #### 一、选择题知识点解析 1. **栈的操作原则** 栈是一种特殊的线性表,它只允许在一端进行插入和删除操作,这一端称为栈顶(top)。另一端称为栈底(bottom),不允许在其上进行...

    数据结构栈的实现实验

    在这个名为“数据结构栈的实现实验”的项目中,我们主要关注的是栈这一重要的数据结构。栈是一种特殊的线性表,其操作遵循“后进先出”(LIFO)原则,即最后进入栈的元素最先被移出。在这个实验中,我们将学习如何...

    数据结构栈的实验报告.doc

    实验报告的主题是关于数据结构中的顺序栈的基本操作,主要涵盖了栈的初始化、进栈、出栈等核心概念。顺序栈是一种特殊的线性表,它的特点是只允许在一端进行插入和删除操作,这一端称为栈顶。 1. **栈的类型定义**...

    数据结构 栈 表达式求值

    对于给定的“biaodashi”文件,虽然具体内容未知,但很可能是关于如何使用数据结构栈来求解表达式的示例或练习。通过深入理解栈的工作原理和逆波兰表示法,我们可以有效地编写程序来处理各种复杂的数学表达式,无论...

    数据结构 栈和队列PPT

    栈和队列是两种基础且重要的数据结构,广泛应用于各种算法和程序设计中。本课件及课堂笔记将深入探讨这两种数据结构的概念、特性以及它们在实际问题中的应用。 栈(Stack)是一种后进先出(LIFO,Last In First Out...

    数据结构栈计算器

    在本项目"数据结构栈计算器"中,我们将深入探讨栈这一特殊的数据结构及其在实现计算器功能时的应用。栈是一种后进先出(LIFO)的数据结构,常用于解决逆序操作的问题,比如表达式求值。 首先,让我们来看看"中缀转...

    数据结构栈的输入与输出

    数据结构中栈的操作,输入与输出,可以正常运行

    数据结构栈的表达式实验报告

    在这个“数据结构栈的表达式实验报告”中,主要讨论了如何利用栈来实现算术表达式的求值。 实验的目标是加深对栈逻辑特性和物理特性的理解,并通过实际编程锻炼应用解决复杂问题的能力。具体来说,实验要求用C++...

    数据结构栈的演示程序

    在这个主题中,栈是一种基础且重要的数据结构,常被称为“后进先出”(LIFO)的数据结构。栈的操作主要有两个:压入(Push)和弹出(Pop)。在VC++环境下,利用MFC(Microsoft Foundation Classes)库可以方便地实现...

    数据结构栈和队列相关习题及答案

    数据结构栈和队列相关习题及答案

    数据结构栈代码

    标题“数据结构栈代码”表明我们将讨论一个用C++模板编写的栈实现。C++模板是一个强大的工具,允许我们创建泛型代码,也就是能够处理多种数据类型的代码。这意味着这个栈不仅限于一种特定的数据类型,它可以是整数、...

    长沙理工大学数据结构栈的实现与应用算术表达式求值实验报告.doc

    数据结构栈的实现与应用算术表达式求值实验报告 一、实验环境 在本实验中,我们使用了 32 位操作系统下的 Window 平台,并使用 Microsoft Visual C++ 作为开发环境。 二、实验目的 掌握栈的实现及使用,并应用于...

    数据结构栈的实现

    ### 数据结构栈的实现 #### 实验目的 本次实验旨在帮助学生掌握栈的基本概念与实现方法,具体目标如下: 1. **理解栈的概念及其在内存中的存储方式**:熟悉栈的基本特性和工作原理,了解栈如何通过两种主要的存储...

    心希盼 c++ 数据结构 栈

    栈是一种重要的数据结构,被称为“后进先出”(Last In, First Out,简称LIFO)的数据结构,它的工作原理类似于现实生活中的堆叠物品,最后放入的物品最先被取出。 在C++中实现栈,通常有两种方式:一是使用标准...

    数据结构 栈的模板类线性表实现

    在计算机科学中,数据结构是组织和管理大量数据的有效方式,而栈是一种特殊的数据结构,遵循“后进先出”(LIFO)原则。在这个主题中,“数据结构 栈的模板类线性表实现”指的是使用C++编程语言设计一个泛型模板类,...

    数据结构栈和队列解决迷宫问题

    数据结构栈和队列解决迷宫问题 本文档详细介绍了利用栈和队列解决迷宫问题的步骤,对于初学者学习数据结构能很好的进行辅导。本文档主要涉及到数据结构的两个重要概念:栈和队列,并介绍了如何使用这两个数据结构来...

    数据结构栈实现进制的转换

    "数据结构栈实现进制的转换" 数据结构中,栈是一种重要的数据结构,它可以用来实现各种数据的转换。在这个例子中,我们将使用栈来实现十进制到十六进制的数据转换。 首先,让我们来了解一下栈的基本概念。栈是一种...

    数据结构栈链式存储结构

    栈是一种特殊的数据结构,遵循“后进先出”(Last In First Out, LIFO)的原则,常用于解决许多算法问题,如括号匹配、递归、深度优先搜索等。在实际编程中,我们通常使用链式存储来实现栈,因为这种结构提供了更大...

Global site tag (gtag.js) - Google Analytics