在数据结构中,栈和队列是两种重要的线性数据结构。它们的主要不同在于:栈中存储的元素,是先进后出;队列中存储的元素是先进先出。我们接下来通过LinkedList集合来演示栈和队列的操作。

import java.util.LinkedList;

/**
* 用LinkedList集合演示栈和队列操作
*
* @author 李章勇
*/
public class Test1 {
public static void main(String[] args) {
LinkedList<String> test = new LinkedList<>();
//1.演示栈Stack操作
System.out.println("1.演示栈Stack操作-----");
System.out.println("(1)向栈中添加元素 push()");
test.push("a");
test.push("b");
test.push("c");
test.push("e");
test.push("f");
test.push("g");
System.out.println(test.toString());
System.out.println("(2)从栈中取元素,但是不删除 peek()");
String peek = test.peek();
System.out.println("用peek()取出一个元素:" + peek.toString());
System.out.println("取出一个元素后,集合为:" + test.toString());
System.out.println("(3)从栈中取元素,并且删除 pop()");
String pop = test.pop();
System.out.println("用pop()取出一个元素:" + pop);
System.out.println("取出一个元素后,集合为:" + test.toString());
test.clear();
//2.演示队列Queue操作
System.out.println("2.演示队列Queue操作-----");
System.out.println("(1)向队列中添加元素 add()");
test.add("a");
test.add("b");
test.add("c");
test.add("d");
test.add("e");
test.add("f");
System.out.println(test.toString());
System.out.println("(2)从队列中移除元素 element()");
//注意:与peek()不同的是,如果队列为空,element()会返回一个异常,为此,需要先判断test集合是否为空
if (test != null) {
String element = test.element();
System.out.println("用element取出一个元素:" + element);
System.out.println("取出一个元素后,集合为:" + test.toString());
}
System.out.println("(3)从队列中移除元素 poll()");
String poll = test.poll();
System.out.println("用poll()取出一个元素:" + poll);
System.out.println("取出一个元素后,集合为:" + test.toString());
}
}  

  运行结果如下:

1.演示栈Stack操作-----
(1)向栈中添加元素  push()
[g, f, e, c, b, a]
(2)从栈中取元素,但是不删除  peek()
用peek()取出一个元素:g
取出一个元素后,集合为:[g, f, e, c, b, a]
(3)从栈中取元素,并且删除  pop()
用pop()取出一个元素:g
取出一个元素后,集合为:[f, e, c, b, a]
2.演示队列Queue操作-----
(1)向队列中添加元素  add()
[a, b, c, d, e, f]
(2)从队列中移除元素  element()
用element取出一个元素:a
取出一个元素后,集合为:[a, b, c, d, e, f]
(3)从队列中移除元素  poll()
用poll()取出一个元素:a
取出一个元素后,集合为:[b, c, d, e, f]

用LinkedList集合演示栈和队列的操作的更多相关文章

  1. LinkedList集合 实现栈和队列

    LinkedList集合的底层是链表结构实现的,所以可以模拟栈(先进后出)和队列(先进先出). 方法: addFirst() //添加元素到列表的起始位置 addLast() //添加元素到列表的结束 ...

  2. 剑指Offer的学习笔记(C#篇)-- 用两个栈实现队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 一 . 概念! 首先要理解栈和队列的概念. 1. 栈:咱可以简单的把栈理解成装羽毛球的球桶.或者我们吃的 ...

  3. 【C#数据结构系列】栈和队列

    一:栈 栈和队列也是线性结构,线性表.栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作受到限制.栈的操作只能在表的一端进行,队列的插入操作 ...

  4. Go实现栈与队列基本操作

    @ 目录 一 前言 二 实现栈与队列基本操作 2.1 栈基本操作 2.2 队列基本操作 三 用栈实现队列 3.1 理论 3.2 算法题 3.3 思路 3.4 代码部分 四 用队列实现栈 4.1 理论 ...

  5. java 集合 Connection 栈 队列 及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...

  6. java集合详解(附栈,队列)

    1 集合 1.1 为什么会出现集合框架 [1] 之前的数组作为容器时,不能自动拓容 [2] 数值在进行添加和删除操作时,需要开发者自己实现添加和删除. 1.2 Collection接口 1.2.1 C ...

  7. 集合第七发练习之利用ArrayList做栈、队列

    栈:后进先出. 队列:先进先出. 利用这个核心思想,结合集合的add和remove方法做的栈和队列如下代码所示: 主类(t1()和t2()分别演栈和队列):   package cn.hncu.myS ...

  8. LinkedList学习:API调用、栈、队列实现

    参考的博客 Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 如果你想详细的区了解容器知识以及本文讲的LinkedList,我推荐你去看这篇博客和这个做个的容器系列 Lin ...

  9. Collection集合重难点梳理,增强for注意事项和三种遍历的应用场景,栈和队列特点,数组和链表特点,ArrayList源码解析, LinkedList-源码解析

    重难点梳理 使用到的新单词: 1.collection[kəˈlekʃn] 聚集 2.empty[ˈempti] 空的 3.clear[klɪə(r)] 清除 4.iterator 迭代器 学习目标: ...

随机推荐

  1. 巧学DBhelper

    这几天在教我很重要的人学习,她属于那种超级小白,很超级的那种. 教她的过程中 发现有的知识点 不管这么教都不会.DBhelper就是不知道怎么记. 当时我就想到 杰哥(程杰)的出的大话系列,和他写书的 ...

  2. JAVA基础1——字节&位运算

    占用字节数 & 取值范围 Java一共有8种基本数据类型(原始数据类型): 类型 存储要求 范围(包含) 默认值 包装类 int 4字节(32位) -2^31~ 2^31-1 0 Intege ...

  3. 【原创】python实现清理本地缓存垃圾

    #coding=utf-8 import os import glob try: #利用glob模块定位需要清理垃圾的模糊路径 File_1 = glob.glob("C:\Windows\ ...

  4. LINQ学习系列-----3.1 查询非泛型集合

    一.问题起源 LINQ to object在设计时,是配合IEnumerable<T>接口的泛型集合类型使用的,例如字典.数组.List<T>等,但是对于继承了IEnumera ...

  5. P1040 加分二叉树

    转自:(http://www.cnblogs.com/geek-007/p/7197439.html) 经典例题:加分二叉树(Luogu 1040) 设一个 n 个节点的二叉树 tree 的中序遍历为 ...

  6. JAVA调用WCF

    Java环境下生成代理类的工具有很多,如wsdl2Java,wsimport 等.本文中使用的工具是wsimport. 1.wsdl2Java 生成命令实例: wsdl2Java -p package ...

  7. ansible批量管理软件部署及剧本

    服务器版本信息: Centos6.9 [root@db02 ~]# uname -a Linux db02 -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_6 ...

  8. OpenXml读取word内容(二)

    注意事项 上一篇已经说明,这次就不一一说了,直接来正文: word内容 相关代码 方法1 static void Main(string[] args) { string wordPathStr = ...

  9. 解决failed to push some refs to git

    Administrator@PC-20150110FGWU /K/cocos2d/yc (master) $ git push -u origin master To git@github.com:y ...

  10. 更便捷的css处理方式-postcss

    更便捷的css处理方式-PostCSS 一般来说介绍一个东西都是要从是什么,怎么用的顺序来讲.我感觉这样很容易让大家失去兴趣,先看一下postcss能做点什么,有兴趣的话再往下看,否则可能没有耐心看下 ...