数据结构之栈 曾经终败给现在 2024-04-20 04:49 2阅读 0赞 ![在这里插入图片描述][ffc0e471ff2144e9aea6a3a99ceb6213.png_pic_center] > 作者简介: zoro-1,目前大二,正在学习Java,数据结构等 > 作者主页: [zoro-1的主页][zoro-1] > 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 #### 数据结构之栈 #### * 概念 * 特性 * 常用方法 * 栈模拟实现 * * 接口 * 实现类 ## 概念 ## > **栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。** > 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 > 出栈:栈的删除操作叫做出栈。出数据在栈顶 ## 特性 ## **先进后出** 例如生活中的羽毛球: ![在这里插入图片描述][bd857d2c5a4d4337b49a18ee10c464cc.png] ## 常用方法 ## ![在这里插入图片描述][12855b60a3844419a453e357a3fe47a5.png] ## 栈模拟实现 ## ### 接口 ### public interface IStack { void push(int x); int pop(); int peek(); int size(); boolean empty(); boolean full(); } ### 实现类 ### public class MyStack implements IStack { private int[] elem; private int usedSize;//可以存放数据元素的下标 private static final int DEFAULT_CAPACITY = 10; private int size = 0; public MyStack() { this.elem = new int[DEFAULT_CAPACITY]; this.size = DEFAULT_CAPACITY; } public MyStack(int size) { this.elem = new int[size]; this.size = size; } @Override public void push(int x) { if (usedSize >= this.size) { throw new IllegalArgumentException("栈满了"); } elem[usedSize++] = x; } @Override public int pop() { if (full()) { throw new IllegalArgumentException("栈空了"); } int m= elem[usedSize-1]; usedSize--; return m; } @Override public int peek() { if (full()) { throw new IllegalArgumentException("栈空了"); } return elem[usedSize - 1]; } @Override public int size() { return usedSize; } @Override public boolean empty() { return usedSize == 0; } @Override public boolean full() { return usedSize == size; } } > 今天的分享到这就结束了,记得三连哦,谢谢大家支持 > ![在这里插入图片描述][bcc897d3f4f04a12a2a479bab7b306e9.png_pic_center] [ffc0e471ff2144e9aea6a3a99ceb6213.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/20/b2c71a7b53c24d22897207a0f3e58110.png [zoro-1]: https://blog.csdn.net/ltzoro?spm=1000.2115.3001.5343 [bd857d2c5a4d4337b49a18ee10c464cc.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/20/94988152f75a43e4a45eac2458b3ef87.png [12855b60a3844419a453e357a3fe47a5.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/20/e885aadcba1b4d3aa239252137d698f6.png [bcc897d3f4f04a12a2a479bab7b306e9.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/20/cf5f497657c84ab89612f0025c967b27.png
相关 数据结构之栈 一.什么是栈? 本文将介绍一个重要的数据结构—栈,和之前讲到的链表、数组一样也是一种数据呈线性排列的数据结构,不过在这种结构中,我们只能访问最新添加的数据。栈就像是一摞书, た 入场券/ 2022年10月14日 10:49/ 0 赞/ 105 阅读
相关 数据结构之栈 栈的介绍 1)栈是一个先入后出的有序列表 2)允许插入和删除的一端,为变化的一端,称为栈顶,另一端是固定的一端,为栈底 数组模拟栈 ![在这里插入图片描述][ ╰+攻爆jí腚メ/ 2022年08月31日 13:23/ 0 赞/ 96 阅读
相关 数据结构之栈 栈是一种先进后出的线性结构,只允许在一端插入删除,属于逻辑结构。 栈的定义 package com.zhiru; / 栈是一种先进后出 男娘i/ 2022年08月11日 03:27/ 0 赞/ 104 阅读
相关 数据结构之栈 1、定义:栈(stack)是限制在插入和删除只能在一个位置进行操作的一种表结构,该合位置是表的末端,称作栈顶(top),对栈的基本操作的push()进栈和pop()出栈,一般栈 ╰半夏微凉°/ 2022年08月06日 01:05/ 0 赞/ 129 阅读
相关 数据结构之栈 栈是一种数据结构,特点是先进后出。比较通俗的说那就一个容器一端是封闭的,只能是先来的后出去。 先是写一个使用数组的栈类ArrayStack. / ArraySt 秒速五厘米/ 2022年07月12日 03:43/ 0 赞/ 142 阅读
相关 数据结构之栈 头文件: using namespace std; template <class T> class MyStack { 妖狐艹你老母/ 2022年05月27日 05:39/ 0 赞/ 131 阅读
相关 数据结构之栈 一、顺序栈 1.0 理解栈 栈是一种比线性表还要简单的数据结构,因为他就是对线性表的限制后的数据结构 即 只允许在线性表的尾部进行插入和删除操作 偏执的太偏执、/ 2022年05月25日 02:37/ 0 赞/ 167 阅读
相关 数据结构之栈 什么是栈 从栈的操作特性上来看,栈是一种 “操作受限”的线性表,只允许在一端插入和删除数据,且满足先进后出、后进先出的特性。 实现一个栈 栈可以用数组或链表来实现 Bertha 。/ 2022年05月16日 14:29/ 0 赞/ 154 阅读
相关 数据结构之栈 数据结构栈的相关学习: 简介 限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端成为栈顶,另一端成为栈低,不含任何元素的栈成为空栈,栈又称为先进先出的线性表 今天药忘吃喽~/ 2022年02月05日 05:09/ 0 赞/ 209 阅读
还没有评论,来说两句吧...