数据结构(Java实现)-栈和队列

这篇具有很好参考价值的文章主要介绍了数据结构(Java实现)-栈和队列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。
先进后出
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


栈的使用
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


栈的模拟实现
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
上述的主要代码

public class MyStack {
    private  int[] elem;
    private int usedSize;

    public MyStack() {
        this.elem = new int[5];
    }

    @Override
    public String toString() {
        return "MyStack{" +
                "elem=" + Arrays.toString(elem) +
                ", usedSize=" + usedSize +
                '}';
    }

    //压栈
    public void push(int val){
        if(isFull()){
            elem=Arrays.copyOf(elem,2*elem.length);
        }
        elem[usedSize++]=val;

    }
    public boolean isFull(){
        return this.usedSize==elem.length;
    }

    //出栈
    public int pop(){
        if(empty()){
            throw new StackEmptyException("栈内元素为空");
        }
        return elem[--usedSize];
    }
    public  boolean empty(){
        return usedSize==0;
    }

    //获取栈顶元素
    public int peek(){
        if(empty()){
            throw new StackEmptyException("栈内元素为空");
        }
        return elem[usedSize-1];
    }

}

改变元素的序列
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


将递归转化为循环
比如:逆序打印链表
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
结果如下
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


队列的使用
Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


队列模拟实现(利用双向链表)
先考虑一般情况,再考虑特殊情况
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言

数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


循环队列
环形队列通常使用数组实现
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
注意事项
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
代码如下
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


双端队列 (Deque)
双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。
栈和队列均可以使用该接口。


数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言


用栈实现队列
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言
数据结构(Java实现)-栈和队列,数据结构(Java实现),数据结构,java,开发语言文章来源地址https://www.toymoban.com/news/detail-683431.html


到了这里,关于数据结构(Java实现)-栈和队列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c++实现数据结构栈和队列

    1、栈 头文件 源文件 主函数 2、循环队列 头文件 源文件 主函数 3、思维导图

    2024年02月08日
    浏览(30)
  • 数据结构基础5:栈和队列的实现。

    1.基本概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈

    2024年02月13日
    浏览(28)
  • 【数据结构】栈和队列的模拟实现(两个方式实现)

    💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖        这一篇博客将学习栈和队列的相关知识, 栈

    2024年02月05日
    浏览(29)
  • 【数据结构和算法】---栈和队列的互相实现

    具体题目可以参考 LeetCode 232. 用栈实现队列 首先要想到的是,队列是一种 先进先出 的结构,而栈是一种 先进后出 的结构。依此 我们可以定义两个栈结构来模拟先进先出 ,既然要定义两个栈,那么为了方便调用,我们可以将这两个栈结构定义在一个结构体中,如下: 实现

    2024年02月03日
    浏览(29)
  • 数据结构初阶(用C语言实现简单数据结构)--栈和队列

    ✨✨欢迎来到T_X_Parallel的博客!!       🛰️博客主页:T_X_Parallel       🛰️专栏 : 数据结构初阶       🛰️欢迎关注:👍点赞🙌收藏✍️留言 这小猫真好看 言归正传,通过上篇有关顺序表和链表的博客,可以了解到线性表的一些大致特征,这篇博

    2024年02月08日
    浏览(28)
  • 数据结构上机实验——栈和队列的实现、栈和队列的应用、进制转换、约瑟夫环问题

      1.利用栈的基本操作实现将任意一个十进制整数转化为R进制整数。   2.利用循环队列实现.约瑟夫环问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到k的那个人出圈;他的下一个人又从1开始报数,数到k的那个人出圈;依

    2024年02月08日
    浏览(30)
  • 数据结构入门(C语言版)栈和队列之队列的介绍及实现

    什么是队列呢?我们先看下面的图: 我们可以理解成高速公路上的隧道,根据这个图的描述 我们把需入队的元素看作一辆车,把队列看作隧道,由此我们可以看出 队列的特点是 只允许从一端进入,从另一端离开。 队列就是只允许在一端进行插入数据操作,在另一端进行删

    2023年04月15日
    浏览(30)
  • 数据结构进阶篇 之 【栈和队列】的实现讲解(附完整实现代码)

    书读一边家里见 书读三遍大专见 书读百遍清北见 书读零遍感谢大哥的穿云箭🚀 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀– 概念

    2024年04月09日
    浏览(34)
  • 【数据结构】带你深入栈和队列,轻松实现各种接口功能

    君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 Hello,米娜桑们,这里是君兮_,我们继续来学习初阶数据结构的内容,今天我们要讲的是栈与队列内容中队列部分的内容 好了,废话不多说,开始今天的学习吧! — 队列:只允许在一端进行插入数据操作,在另一端进行

    2024年02月13日
    浏览(32)
  • 【数据结构】带你图文结合深入栈和队列,并具体分步实现

    君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 Hello,米娜桑们,这里是君兮_,我们继续来学习初阶数据结构的内容,今天我们要讲的是栈与队列部分的内容,这篇博客先讲栈,队列我们放到下次再讲 好了,废话不多说,开始今天的学习吧! — 栈:一种特殊的线性表

    2024年02月13日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包