美文网首页
队列与栈

队列与栈

作者: Ernest_Chou | 来源:发表于2018-08-09 17:52 被阅读0次
  1. 队列
package queueTest;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 队列
 * 与集合相似,可以保存一组元素。但是不能任意访问
 * 其中元素。存取必须遵循先进先出原则。
 * @author Administrator
 *
 */
public class QueueDemo {
    public static void main(String[] args) {
        /*
         * 由于LinkedList可以存放一组元素,并且
         * 增删效率比较高,所以其也实现了Queue接口
         * 可以看做是一个队列使用。
         */
        Queue<String> queue 
            = new LinkedList<String>();
        
        /*
         * boolean offer(E e)
         * 向队列末尾追加一个新元素 
         */
        queue.offer("one");
        queue.offer("two");
        queue.offer("three");
        queue.offer("four");
        
        System.out.println(queue);
        
        /*
         * E poll()
         * 从队首获取元素,并且将该元素从队列中
         * 删除
         */
        String str = queue.poll();
        System.out.println(str);
        
        System.out.println(queue);
        
        /*
         * E peek()
         * 该方法也会获取队首元素,但是不会做
         * 出队操作,该元素不会从队列中被删除
         */
        str = queue.peek();
        System.out.println(str);
        System.out.println(queue);
        
        System.out.println(queue.size());
        /*
         * 遍历队列
         */
        while(queue.size()>0){
            str = queue.poll();
            System.out.println(str);
        }
        System.out.println(queue);
        
    }
}
package stackTest;

import java.util.Deque;
import java.util.LinkedList;

/**
 * 栈
 * 存放一组元素,存取必须遵循先进后出原则
 * 一般应用于操作的可追溯性(后退功能)
 * @author Administrator
 *
 */
public class StackDemo {
    public static void main(String[] args) {
        /*
         * java没有为栈单独设计类型。
         * 使用双端队列实现,只调用一侧的进出队
         * 方法,就形成了栈。
         * 不过双端队列由于具有栈的特性,所以为此
         * 给栈单独定义了从一侧进出的两个方法
         * push,pop
         */
        Deque<String> stack
            = new LinkedList<String>();
        /*
         * void push(E e)
         * 将元素"压入"栈中
         * 入栈操作,新进去的元素在栈顶(第一个位置)
         */
        stack.push("one");
        stack.push("two");
        stack.push("three");
        stack.push("four");
        
        System.out.println(stack);
        
        /*
         * E pop()
         * 出栈操作。获取栈顶元素。获取后该元素
         * 会从栈中删除。
         */
        String str = stack.pop();
        System.out.println(str);
        System.out.println(stack);
        
        //peek同样可以使用
        str = stack.peek();
        System.out.println(str);
        System.out.println(stack);
        
        //遍历
        while(stack.size()>0){
            str = stack.pop();
            System.out.println(str);
        }
        System.out.println(stack);
        
    }
}

相关文章

  • Swift 队列&栈 相关操作

    栈 LIFO(后进先出) 队列 FIFO(先进先出) 队列与栈相互的实现 栈 - 队列实现 队列 - 栈实现 相关...

  • 数据结构学习 | 队列和栈

    栈 后进先出 栈顶允许插入(压栈)、删除(弹栈) 应用:数制转换数制转换与栈 队列 先进先出 队列头部允许删除,队...

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

  • 常见数据结构

    栈、队列、数组、链表、树、哈希表 栈 与 队列 首先我们需要了解【栈】与【列队】的区别,它们的最大区别就是数据进出...

  • 栈和队列

    用栈定义队列(出入栈) 用队列定义栈(数据队列和辅助队列)

  • LeetCode刷题笔记(三)栈与队列

    三. 栈与队列 python中的栈直接用list实现,队列用deque,需要导入外部包。 155. 最小栈 题目:...

  • 实 验 四 栈和队列

    一、实验目的与要求:## 1、理解栈和队列抽象数据类型。 2、掌握栈和队列的存储结构和操作实现。 3、理解栈和队列...

  • 数据结构的各种代码

    第 02 章 线性表 顺序存储结构 链式存储结构 第 03 章 栈与队列 顺序栈 链栈 两栈共享空间 循环队列 链...

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 2019-05-12(高数二轮概念梳理与408一轮同时进行)

    今日复习:极限、连续 与栈、队列

网友评论

      本文标题:队列与栈

      本文链接:https://www.haomeiwen.com/subject/fzpcbftx.html