`
中国爪哇程序员
  • 浏览: 167535 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java实现栈的数据结构

 
阅读更多
迷宫,队列实现,客户等待

栈是一种数据结构,只能从一端进行存储和访问。常规操作有压入栈和弹出栈。
特性:先进先出,LIFO

以下是用ArrayList为内核实现一个栈的数据结构
import java.util.ArrayList;
import java.util.List;
import java.util.EmptyStackException;

public class Statck<E extends Object> {
	private List<E> pool = new ArrayList<E>();

	public Statck() {
	}

	public void clear() {
		pool.clear();
	}

	public boolean isEmpty() {
		return pool.isEmpty();
	}

	/**
	 * 获取栈顶元素
	 * */
	public E getTopObjcet() {
		if (isEmpty()) {return null;}
		return pool.get(0);
	}

	/**
	 * 弹出栈操作
	 * */
	public E pop() {
		if (isEmpty()) {throw new EmptyStackException();}
		return pool.remove(pool.size() - 1);
	}

	/**
	 * 压入栈
	 * */
	public void push(E e) {
		if (isEmpty()) {throw new EmptyStackException();}
		pool.add(e);
	}

	/**
	 * 获取当前栈大小
	 * */
	public int getStatckSize() {
		if (isEmpty()) {throw new EmptyStackException();}
		return pool.size();
	}

}



以链表方式实现一个栈
public class Statck<E extends Object> {
	private List<E> pool = new ArrayList<E>();

	public Statck() {
	}

	public void clear() {
		pool.clear();
	}

	public boolean isEmpty() {
		return pool.isEmpty();
	}

	/**
	 * 获取栈顶元素
	 * */
	public E getTopObjcet() {
		if (isEmpty()) {return null;}
		return pool.get(0);
	}

	/**
	 * 弹出栈操作
	 * */
	public E pop() {
		if (isEmpty()) {throw new EmptyStackException();}
		return pool.remove(pool.size() - 1);
	}

	/**
	 * 压入栈
	 * */
	public void push(E e) {
		if (isEmpty()) {throw new EmptyStackException();}
		pool.add(e);
	}

	/**
	 * 获取当前栈大小
	 * */
	public int getStatckSize() {
		if (isEmpty()) {throw new EmptyStackException();}
		return pool.size();
	}

}
分享到:
评论
1 楼 diaoaa 2014-03-30  
/**
     * 获取栈顶元素
     * */ 
    public E getTopObjcet() { 
        if (isEmpty()) {return null;} 
        return pool.get(0); 
    } 
错了

相关推荐

    java实现数据结构

    下面将详细介绍Java中实现链表、栈、队列、优先级队列以及哈希表这些基本数据结构的方法。 首先,我们来看链表。链表是一种线性数据结构,其中的元素不连续存储,而是通过指针连接。Java中的`LinkedList`类实现了`...

    java 栈的实现和应用

    Java栈是一种基于后进先出(LIFO)原则的数据结构,它在计算机科学和编程中具有广泛的应用。本文将深入探讨Java中栈的实现以及其在实际应用中的使用。 首先,我们来理解栈的基本概念。栈是一种特殊类型的线性数据...

    Java语言编写的数据结构-栈实现

    在这个主题中,我们将深入探讨如何在Java中实现栈这一基本数据结构,具体包括顺序栈(stack_SqStack)和链栈(stack_SLinkList)。 栈是一种后进先出(Last In First Out, LIFO)的数据结构,常用于临时存储和快速...

    java实现的数据结构与算法

    《Java实现的数据结构与算法》是一本全面介绍数据结构和算法实现的书籍,以Java语言为载体,涵盖了面向对象程序设计的基本概念和特性,并深入探讨了数据结构与算法的方方面面,包括各种数据结构的基本概念、算法的...

    Java常见数据结构面试题(带答案)

    "Java常见数据结构面试题(带答案)" 以下是对Java常见数据结构面试题的...本篇文章主要介绍了Java常见数据结构面试题,涵盖了栈、队列、链表、线性表、树、算法、数据结构等知识点,希望对广大的程序爱好者有所帮助。

    java实现的算术表达式,带简单界面

    在标签中提到了“java 栈”,这暗示了项目的核心部分是如何使用Java实现栈数据结构。在Java中,除了ArrayList,还可以使用LinkedList等数据结构来实现栈。不过,ArrayList通常在空间效率和快速访问上更有优势,因此...

    JAVA基本5种数据结构的实现。

    本主题将深入探讨Java中的五种基础数据结构:链表、队列、栈、双端队列(deque)以及堆。我们将通过分析给定的源代码文件来理解这些数据结构的实现。 首先,链表是一种线性数据结构,它不连续存储数据,而是通过...

    数据结构(Java)迷宫实现

    总之,利用Java和栈数据结构解决迷宫问题是一个很好的实践项目,它能够帮助我们深入理解数据结构与算法在实际问题中的应用。在进行这样的实践作业时,不仅要关注代码的实现,还要注重代码的可读性和优化,这对提升...

    java-数据结构代码实现

    8. **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,这些排序算法的Java实现可以帮助你理解它们的工作原理和效率。 9. **查找算法**:如二分查找、哈希查找等,这些算法在处理大...

    邓俊辉版java 数据结构源码

    Java中,我们可以通过ArrayDeque类或者自定义链表来实现栈。 队列是先进先出(FIFO)的数据结构,Java的LinkedList类可以方便地实现队列功能,或者使用ArrayDeque类的双端队列特性。 树是一种非线性的数据结构,...

    Java数据结构课件

    栈是一种后进先出(LIFO)的数据结构,Java中的`java.util.Stack`类可以用来实现栈。栈常用于表达式求值、深度优先搜索等场景。队列是一种先进先出(FIFO)的数据结构,`java.util.Queue`接口及其实现类如`...

    数据结构(java版本)

    《数据结构(Java版本)》这本书正是为此目的而编写,旨在将理论与实际编程相结合,通过Java语言来实现各种经典的数据结构。 首先,书中的基础部分会介绍数据结构的基本概念,如数组、链表、栈和队列。数组是最基本...

    Java版本的数据结构和算法(Linux社区版)绝对原创

    这个"Java数据结构和算法.pdf"文档很可能详细讲解了如何在Java环境中实现这些数据结构和算法,包括它们的基本原理、优缺点以及如何在实际编程中使用。对于初学者,它可能会提供易于理解的示例和练习;对于有经验的...

    数据结构java代码实现

    在压缩包中的“数据结构代码java实现”可能包含了以上所有数据结构的Java源代码,每一种数据结构都会有一个独立的类,类中会有对应的方法来实现数据结构的功能。初学者可以通过阅读和运行这些代码,加深对数据结构的...

    JAVA版数据结构.pdf

    文中提到了数据结构(Data Structures)和Java语言的结合,这表明文档可能涉及数据结构在Java中的实现方式,包括基本的结构如数组、链表、栈、队列、树和图等,以及它们的特性、操作方法和应用场景。 2. Java中的...

    Java定义栈结构,并实现入栈、出栈操作完整示例

    栈可以使用数组或链表实现,本文使用 ArrayList 实现栈结构。 栈结构的定义包括以下几个部分: * 入栈(push):将元素添加到栈顶 * 出栈(pop):将栈顶元素取出 * 栈是否为空(isEmpty):判断栈是否为空 * 栈...

    数据结构与算法代码详解JAVA版

    本资源"数据结构与算法代码详解JAVA版"聚焦于使用Java语言来理解和实现这些核心概念。 首先,数据结构是组织和存储数据的方式,它为高效地执行各种操作提供了便利。常见的数据结构包括数组、链表、栈、队列、树(如...

    java数据结构之java实现栈

    Java 数据结构之 Java 实现栈 Java 数据结构实现栈是 Java 编程语言中的一种基础数据结构。栈是一种抽象数据类型,遵循 FILO(First In Last Out,先进后出)原则,即最后入栈的元素最先出栈。栈的实现有多种方式,...

    java数据结构与算法.pdf

    Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点进行详细解释。 1. **数据结构**: - **稀疏数组**:当大量数据中大部分为零或...

Global site tag (gtag.js) - Google Analytics