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

java中LinkedList 集合类实现栈和队列

阅读更多
java中LinkedList 集合类实现栈和队列


  栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。

   LinkedList数据结构是一种双向的链式结构,每一个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素,和数组的顺序存储结构(如:ArrayList)相比,插入和删除比较方便,但速度会慢一些。

栈的定义
     栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。
  (1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。
  (2)当表中没有元素时称为空栈。
  (3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表。
     栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。

实现代码:
package com.gc.list;
import java.util.*;
public class MyStack {
private LinkedList ll=new LinkedList();

public void push(Object o){
  ll.addFirst(o);
}
public Object pop(){
  return ll.removeFirst();
}

public Object peek(){
  return ll.getFirst();
}

public boolean empty(){
  return ll.isEmpty();
}

public static void main(String[] args){
  MyStack ms=new MyStack();
  ms.push("zhangsan");
  ms.push("lisi");
  ms.push("wangwu");
 
  System.out.println(ms.pop());
  System.out.println(ms.peek());
  System.out.println(ms.pop());
  System.out.println(ms.empty());
}
}


队列定义
     队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表

  (1)允许删除的一端称为队头(Front)。
  (2)允许插入的一端称为队尾(Rear)。
  (3)当队列中没有元素时称为空队列。
  (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。

实现代码:
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();
}

public static void main(String[] args){
  MyQueue mq=new MyQueue();
  mq.put("zhangsan");
  mq.put("lisi");
  mq.put("wangwu");
 
  System.out.println(mq.get());
  System.out.println(mq.get());
  System.out.println(mq.get());
  System.out.println(mq.empty());
 
}
}

分享到:
评论

相关推荐

    java中LinkedList集合类实现栈和队列.doc

    在Java编程语言中,LinkedList集合类是一个非常重要的数据结构,它可以用来实现栈和队列这两种特殊的数据结构。LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入...

    JAVA利用LinkedList构造栈与队列

    在Java编程语言中,LinkedList是一个常用的集合类,它实现了List接口,同时也提供了双向链表的实现。LinkedList不仅可以作为列表使用,还可以被巧妙地利用来构建栈(Stack)和队列(Queue)这两种基本数据结构。在本...

    ExtJS

    **Java 中LinkedList集合类实现栈和队列** `LinkedList` 类不仅支持队列操作,还可以通过头尾操作实现栈(后进先出,LIFO)的功能。通过 `addFirst()` 和 `removeFirst()` 方法,我们可以将 `LinkedList` 作为栈...

    用LinkedList实现队列和栈

    在Java编程语言中,`LinkedList` 是一个常用的集合类,它实现了`List`接口,并且提供了额外的功能,如双端操作。本篇文章将探讨如何利用`LinkedList`来实现队列和栈这两种数据结构,以及其背后的原理和源码分析。 #...

    java零基础自学之栈和队列

    在Java中,可以使用`java.util.Stack`类来实现栈。这个类继承自`Vector`,提供了栈操作的方法,如`push()`, `pop()`, `peek()`等。 3.2 队列 3.2.1 队列的定义 队列是一种两端操作的数据结构,一端称为队头,用于...

    java 栈的实现和应用

    2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等...

    Java 中Linkedlist类的源代码

    LinkedList类位于java.util包中,它还实现了Deque(双端队列)接口,提供了额外的功能。 LinkedList的源代码包含了许多重要的方法和内部类。首先,我们来看它的主要属性: 1. **header**: 这是一个内部静态节点类...

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

    **Java Collections API**提供了多种集合类,其中`List`接口是最常用的一种,它包含两种实现方式:`ArrayList`和`LinkedList`。 - **ArrayList**:基于数组实现的List,支持随机访问,适用于需要频繁访问元素的场景...

    14.栈和队列.pdf

    在Java中,栈可以通过ArrayList、LinkedList等集合框架实现,也可以通过数组自行实现。 队列(Queue)是一种先进先出的数据结构,它允许在一端添加数据(入队),在另一端移除数据(出队)。队列的概念中,进行数据...

    java中栈和队列的实现和API的用法(详解)

    java中虽然有Queue接口,但是java并没有给出具体的队列实现类,而Java中让LinkedList类实现了Queue接口,所以使用队列的时候,一般采用LinkedList。因为LinkedList是双向链表,可以很方便地实现队列的所有功能。 在...

    解析Java中的队列和用LinkedList集合模拟队列的方法

    熟悉队列的使用和实现能够显著提高解决这类问题的效率。在实际编程中,Java还提供了其他队列实现,如`ArrayDeque`(高效且灵活的双端队列)、`PriorityQueue`(基于优先级堆的队列)等,以适应不同场景的需求。

    java常用集合类总结

    Java集合类是Java语言中的一种重要数据结构,用于存储和管理数据。Java集合类可以分为两种:Collection接口和Map接口。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以重复元素,常用的实现...

    java的集合类教学

    Java的集合类是Java编程中不可或缺的一部分,它们用于存储、管理和操作对象。集合框架是一个类库的集合,提供了表示和操作集合的统一架构。在这个框架中,主要关注四个核心接口:Collection、Set、List和Map。 1. *...

    java集合类详解

    Java集合类是Java语言中用来存储数据的结构,它们是Java开发中非常重要的组件。在Java 2平台之前,集合框架的组成较为零散,自Java 2平台的JDK 1.2版本之后,引入了集合框架(Collections Framework),为集合类提供...

    Java集合详解,详细讲解java的集合类

    本文将深入讲解Java集合类,特别是Collection接口和其下的List、Set,以及Map接口中的几个重要实现类。 首先,我们来看Collection接口。Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection...

    源码解析jdk7.0集合:LinkedList的底层实现原理.pdf

    总的来说,JDK 7.0中的LinkedList集合实现通过双向链表提供了高效的元素插入和删除操作,尤其在链表的头部和尾部,但在链表中间的插入和删除则效率较低,因为它需要先定位到具体位置。通过对源码的深入剖析,我们...

    用Java实现数据结构中的队列

    - **ArrayDeque**: Java集合框架中提供的`ArrayDeque`类可以作为高效的队列实现。它是一个双端队列,支持在两端进行插入和删除操作。 - **LinkedList**: `LinkedList`类实现了`Deque`接口,可以被用作队列。但是,...

    java软件技术文档-深入java8的集合2:LinkedList的实现原理.pdf

    总结来说,LinkedList是Java集合框架中的一个重要组成部分,它的核心优势在于高效的头部和尾部操作,但对中间元素的访问则相对较低效。理解其内部结构和实现原理对于优化代码性能和解决并发问题至关重要。在实际开发...

    java集合类的讲解文件

    Java集合类是Java编程语言中处理对象集合的重要工具,它为开发者提供了丰富的数据结构和算法支持。这份讲解文件主要涵盖了Java集合框架的核心概念,包括接口和实现类。 首先,集合框架是一个类库的集合,其核心是...

Global site tag (gtag.js) - Google Analytics