`
newleague
  • 浏览: 1492671 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Java实现数据结构栈stack和队列Queue

阅读更多

回顾JDK提供的集合类

容器(集合)框架如下: 

集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身。

集合类型主要有3种:set(集)、list(列表)和map(映射)

Collection接口

List 接口

│├LinkedList 链表

│├ArrayList 顺序结构动态数组类

│└Vector 向量

Stack

Map接口

Hashtable

HashMap

Set接口

 Collection<--Set<--HashSet

 Collection<--Set<--HashSet<--LinkedHashSet

 Collection<--Set<--SortedSet(也是接口)<--TreeSet

 

LinkedList, 查阅JDK

List接口的链表列表实现。实现所有可选的列表操作,并且允许所有元素(null)

LinkedList类还为在列表的开头及结尾get,removeinsert元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈,队列或双端队列

注意此实现不是同步的

 

JDK本身提供的Stack

提供了通常的pushpop操作,以及取堆栈顶点的peek方法,测试堆栈是否为空的empty方法,在堆栈中查找项并确定离栈顶的距离,共五个方法。

JDK中实现这个类本身继承自Vector这个类(since JDK1.0)

 

数据结构中 栈的定义及基本运算

栈和队列都属于线性结构,是两种在运算上受到某些限制的特殊线性表,他们比一般线性表更简单。

(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,称为栈顶(top),另一端为固定的一端,称为栈底

栈顶,栈底,空栈,栈的特性,

退栈,进栈

栈的运算:

初始化栈,进栈push,出栈pop,,取栈顶元素(即是查看下一个要出栈的元素,也叫peek),判断空

 

LinkedList实现stack

其实主要是实现 进栈push,出栈pop,,取栈顶元素这几个方法

 

package org.simoncook.examtest;

 

import java.util.LinkedList;

 

public class MyStack {

       

        private LinkedList ll = new LinkedList();

       

        public void push(Object obj){

                //将指定元素插入此列表的开头。

                ll.addFirst(obj);

        }

       

        public Object pop(){

                //移除并返回此列表的第一个元素.

                return ll.removeFirst();

        }

       

        public Object peek(){

                // 返回此列表的第一个元素。

                return ll.getFirst();

        }

       

        public boolean empty(){

                return ll.isEmpty();

        }

}

 

数据结构队列

参考

http://blogger.org.cn/blog/more.asp?name=eaglebetter&id=17232

队列(Queue)的定义

队列的特性队列的实例队 列的基本运算
1 入队操作:InQueueqx
2)出队操作:OutQueueqx
3)读队头元 素:ReadFrontqx
4)显示队列中元素ShowQueueq
5)判队空操作:QEmptyq
6)判 队满操作:QFullq
7)求队列长度Qlenq

 

实现代码:
package com.gc.list;
import java.util.*;
public class MyQueue {

 private LinkedList ll=new LinkedList();
//
入队操作
 public void put(Object o){
  ll.addLast(o);
 }
 //
使用removeFirst()方法,返回队列中第一个数据,然后将它从队列 中删除
//
出队操作
 public Object get(){
  return ll.removeFirst();
 }
 
 public boolean empty(){
  return ll.isEmpty();
 }

分享到:
评论

相关推荐

    数据结构试验2-栈和队列实验报告含源码

    在C++或Java等编程语言中,我们可以使用数组或链表来实现栈。源码可能包含实现基本栈操作的函数,如push(入栈)、pop(出栈)和peek(查看栈顶元素)。 队列(Queue)则是先进先出(FIFO,First In First Out)的...

    数据结构关于栈和队列的实现源代码

    例如,可能会有C++、Java、Python或其他语言的实现,每种语言都有其特定的语法和数据结构处理方式。 为了更好地学习和应用这些源代码,你可以: - 分析每个文件的代码结构,了解它们是如何创建、初始化、添加元素...

    数据结构 实验4 栈和队列

    1. 设计和实现栈和队列的类结构,包括构造函数、压入、弹出、入队、出队等方法。 2. 使用栈来实现简单的逆序输出字符串、括号匹配检查等问题。 3. 使用队列来实现简单的打印队列、银行服务模拟等场景。 4. 探讨栈和...

    数据结构 栈和队列的详细代码~

    在给定的压缩包文件中,"第3章 栈和队列"可能包含了关于这两种数据结构的更深入的理论介绍、实例分析以及具体的编程实现,包括但不限于C++、Java、Python等语言。通过学习这些内容,你可以更好地理解和掌握栈和队列...

    数据结构 栈和队列基本算法

    栈和队列是两种基础且广泛使用的数据结构,它们在编程和算法设计中扮演着重要角色。本篇将深入探讨这两种数据结构的基本原理、实现方式以及常见的应用场景。 栈(Stack)是一种后进先出(LIFO, Last In First Out)...

    java 栈和队列的小例子

    在Java编程语言中,栈(Stack)和队列(Queue)是两种基本的数据结构,它们在处理数据存储和操作方面有着广泛的应用。本教程将通过一些小例子来深入理解这两种数据结构及其在Java中的实现。 栈是一种后进先出(LIFO...

    Java版数据结构代码,栈,动态数组,队列,链表,二叉树

    在Java中,可以使用java.util.Stack类来实现栈,但此资源提供的代码可能自定义实现了栈结构,通过动态数组实现压栈和弹栈操作,提高了灵活性和效率。 2. **动态数组(Dynamic Array)**:动态数组是一种可变大小的...

    常用数据结构(堆栈,队列,列表)JAVA代码

    在这个主题中,我们将深入探讨Java实现的三种基本数据结构:堆栈(Stack)、队列(Queue)和列表(List)。这些概念是计算机科学的核心部分,对理解和解决复杂问题至关重要。 1. **堆栈(Stack)**: - 堆栈是一种...

    Java模拟栈和队列数据结构的基本示例讲解共4页.pdf

    本篇文档《Java模拟栈和队列数据结构的基本示例讲解共4页.pdf》将深入浅出地介绍如何在Java中实现栈和队列,以帮助开发者更好地理解和应用这些概念。 首先,让我们来了解栈和队列的基本特性: 1. **栈(Stack)**...

    数据结构--表、栈、队列(java)

    ### 数据结构概述与Java实现 #### 一、表(List) **表**是一种常见的线性数据结构,它允许用户在任意...这些数据结构在算法设计和软件开发中扮演着极其重要的角色,掌握它们的概念和实现细节对于编程实践至关重要。

    数据结构之栈、队列全部代码

    在这个"数据结构之栈、队列全部代码"的压缩包中,我们将会深入探讨两种基本且重要的线性数据结构——栈和队列,以及它们在编程中的实际应用。 首先,栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据...

    数据结构代码 栈 链表 队列

    本压缩包包含对三种基本数据结构——栈、链表和队列的实现代码,这些都是编程基础中的基础。 首先,我们来详细了解栈(Stack)。栈是一种“后进先出”(LIFO)的数据结构,它的操作主要集中在一端,被称为栈顶。...

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

    队列是一种先进先出(FIFO)的数据结构,`Queue.java`和`QueueApp.java`可能实现了这一概念。在Java中,可以使用`java.util.Queue`接口及其实现如`LinkedList`来创建队列。队列的主要操作包括添加元素(enqueue)、...

    实验4栈和队列_栈_数据结构_creaturexqi_队列_

    本实验主题为“实验4栈和队列”,由creaturexqi提供,旨在深入理解和实践两种基本的数据结构——栈和队列。我们将分别探讨这两种数据结构的概念、特点、操作以及在实际中的应用。 首先,让我们来看看栈(Stack)。...

    java零基础自学之栈和队列

    总结,对于Java初学者来说,理解栈和队列的概念、操作和实现方式是学习数据结构的基础。通过熟练掌握这些知识,可以为后续更复杂的数据结构和算法学习打下坚实的基础。在实际编程中,栈常用于函数调用、表达式求值等...

    数据结构中栈和队的源代码

    栈和队列是两种最基本且重要的数据结构,广泛应用于各种算法和系统设计中。 首先,栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构。它的工作原理类似于日常生活中使用的堆叠物品,最后放入的物品...

    基于 Java 实现的队列和堆栈

    总结,基于Java实现的队列和堆栈是编程中常用的数据结构,理解其工作原理和正确使用能显著提升代码的效率和质量。在实际项目中,开发者需要根据具体应用场景选择合适的数据结构,以实现最佳的解决方案。

    JAVA利用LinkedList构造栈与队列

    LinkedList不仅可以作为列表使用,还可以被巧妙地利用来构建栈(Stack)和队列(Queue)这两种基本数据结构。在本篇内容中,我们将探讨如何通过LinkedList实现栈和队列,以及它们在实际编程中的应用。 首先,栈是一...

    java-leetcode面试题解Stack之第232题用栈实现队列-题解.zip

    本题解聚焦于LeetCode中的第232题——"用栈实现队列",这是一个常见的数据结构问题,尤其在面试中常常被问到,因为它考察了对栈(Stack)和队列(Queue)基本概念的理解以及如何创造性地运用它们。 首先,我们来...

    《Java数据结构和算法》学习笔记(3)——栈和队列

    本文将基于《Java数据结构和算法》学习笔记中的“栈和队列”部分进行深入探讨。 栈(Stack)是一种线性数据结构,遵循后进先出(LIFO, Last In First Out)的原则。在栈中,元素的添加(压栈)和移除(弹栈)都是在...

Global site tag (gtag.js) - Google Analytics