Java数据结构(二)
——栈
栈是一种特殊的线性表。栈的数据元素以及数据元素的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而栈只允许在固定一段进行插入和删除操作。栈中允许进行插入和删除操作的一段称为栈顶,另一端称为栈底。栈的插入操作通常我们都成为进栈或入栈~~而删除操作通常称为出栈或退栈。
根据栈的定义,每次进栈的数据元素都放在原当前栈顶元素之前而成为新的栈顶元素,每次退栈的数据元素都是当前栈顶元素,这样,最后进入栈的数据元素总是最先退出栈,因此栈也被称为后进后出表。
顺序栈
- package pzw.Stack;
- /**
- * 使用顺序存储结构实现的堆栈
- * @author pzw
- *
- */
- public class SeqStack implements Stack{
- final int defaultSize = 10;//默认构造函数的堆栈的大小
- int top;//栈顶位置
- Object[] stack;//数组对象
- int maxStackSize;//该堆栈最大元素个数
- //无参构造函数
- public SeqStack(){
- initiate(defaultSize);
- }
- //构造函数
- public SeqStack(int size){
- initiate(size);
- }
- //初始化堆栈
- private void initiate(int sz){
- maxStackSize = sz;
- top = 0;
- stack = new Object[sz];
- }
- public void push(Object elm) throws Exception {
- if(top == maxStackSize){
- throw new Exception("该堆栈已满");
- }
- stack[top] = elm;//保存元素
- top++;
- }
- public Object pop() throws Exception {
- if(top == 0){
- throw new Exception("该堆栈已空");
- }
- top--;
- return stack[top];
- }
- public Object getTop() throws Exception {
- if(top == 0){
- throw new Exception("该堆栈已空");
- }
- return stack[top-1];
- }
- public boolean notEmpty() {
- // TODO Auto-generated method stub
- return top > 0;
- }
- }
链式栈
- package pzw.Stack;
- /**
- * 链式存储结构堆栈的实现
- * @author PZW
- *
- */
- public class LinStack implements Stack{
- public Node top;//栈顶结点
- public int size;//结点个数
- //构造函数
- public LinStack(){
- top = null;
- size = 0;
- }
- public void push(Object elm) throws Exception {
- top = new Node(elm,top);
- size++;
- }
- public Object pop() throws Exception {
- if(size == 0){
- throw new Exception("该堆栈已空");
- }
- Object elm = top.elm;
- top = top.next;
- size--;
- return elm;
- }
- public Object getTop() throws Exception {
- if(size == 0){
- throw new Exception("该堆栈已空");
- }
- return top.elm;
- }
- @Override
- public boolean notEmpty() {
- // TODO Auto-generated method stub
- return size > 0;
- }
- }
相关推荐
根据提供的信息,“Java数据结构和算法中文第二版”这本书主要关注的是数据结构与算法的相关内容。下面将基于这些信息,详细介绍数据结构与算法的核心概念、重要性和应用领域,以及在Java编程环境中如何实现这些概念...
Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法
本资源包“Java数据结构和算法(第二版)+源代码+Applets”为学习者提供了一个全面且深入的学习平台,涵盖了理论知识、实践代码以及直观的交互式演示。 首先,让我们详细探讨数据结构这一部分。数据结构是组织和存储...
JavaJava 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java ...
在学习Java数据结构时,会涉及递归、排序算法(如冒泡排序、选择排序、快速排序、归并排序)、查找算法(如二分查找、哈希查找)等内容。同时,还会学习如何通过抽象数据类型(ADT)和接口来设计和实现自定义的数据...
"Java常见数据结构面试题(带答案)" 以下是对Java常见数据结构面试题的知识点总结: 栈和队列 * 栈和队列的共同特点是只允许在端点处插入和删除元素。 * 栈通常采用的两种存储结构是线性存储结构和链表存储结构...
java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题...
Java数据结构和算法.pdf
《Java数据结构全套》是针对Java编程语言深入学习数据结构的重要资源集合,涵盖了从基本概念到高级应用的全面知识体系。这个压缩包包含了四部分关键内容:叶核亚编著的《数据结构(Java版)(第3版)》电子教案、...
《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和...
Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点进行详细解释。 1. **数据结构**: - **稀疏数组**:当大量数据中大部分为零或...
《Java数据结构和算法(第二版)》是一本专为希望深入理解Java编程中的数据结构与算法的读者设计的书籍。这本书的特点是从基础知识逐步引导读者进入复杂领域,通过结合实际的Applet小程序,使得理论知识变得生动直观。...
java 数据结构总结的思维导图笔记,个人做的非常全,需要的自行下载
"Java数据结构实例"这个主题,旨在通过具体的代码实例帮助初学者掌握数据结构的基本概念和使用方式,以此来提升编程思维和问题解决能力。在这个压缩包文件中,我们可以预期找到一些用Java实现的数据结构的源代码。 ...
Java数据结构和算法第二十二讲.avi Java数据结构和算法第二十五讲.avi Java数据结构和算法第二十八讲.avi Java数据结构和算法第二十六讲.avi Java数据结构和算法第二十四讲.avi Java数据结构和算法第二十讲.avi Java...
Java数据结构和算法第二版\java数据结构和算法[1].(第二版).part1.rar
《数据结构(Java版本)》这本书正是为此目的而编写,旨在将理论与实际编程相结合,通过Java语言来实现各种经典的数据结构。 首先,书中的基础部分会介绍数据结构的基本概念,如数组、链表、栈和队列。数组是最基本...
《Java数据结构与算法(第二版)》是一本深度探讨Java编程中数据结构和算法的专著,包含源码分析,旨在帮助读者深入理解并掌握这些核心概念。数据结构是计算机存储、组织数据的方式,而算法则是解决问题或执行任务的...
在这个名为“数据结构JAVA实现”的压缩包中,我们可以看到作者提供了三种重要的数据结构——链表、有序二叉树和队列的Java代码实现。 首先,让我们详细探讨链表。链表是一种线性数据结构,与数组不同,它不连续存储...