linux shell中是没有队列这个类型的,如果需要用到队列模型,就需要自己实现,以下是用数组模拟一个栈(FILO)的操作

#!/bin/bash
# 向栈中添加一个元素
# $1 栈变量名
# $2 添加到栈中的元素
function stack_push(){# 定义array 为间接引用变量declare -n array=$1array=(${array[@]} "$2")
}
# 从栈中弹出一个元素
# $1 栈变量名
# stack_pop_return中返回弹出的元素,如果栈为空则返回空
function stack_pop(){stack_pop_return=# 定义array 为间接引用变量declare -n array=$1local size=${#array[@]}[ $size -gt 0 ] && \stack_pop_return=${array[$size-1]} && \array=(${array[@]:0:$(($size-1))})
}################ 调用示例 ##################
# 在这里 names 为保存栈数据的数组变量名
stack_push names tom
stack_push names jerry
echo names=${names[@]}stack_pop names
echo stack_pop_return=$stack_pop_return
stack_pop names
echo stack_pop_return=$stack_pop_return
echo names=${names[@]}stack_pop names
echo 栈为空时pop返回空
echo stack_pop_return=$stack_pop_return
echo names=${names[@]}

linux/bash:用数组模拟栈(FILO)的封装相关推荐

  1. 六、使用数组模拟栈的思路及代码实现

    使用数组模拟栈的实现过程 1.栈的介绍 (1) 栈的英文为(stack) (2) 栈是一个先入后出(FILO-First In Last Out)的有序列表. (3) 栈(stack)是限制线性表中元 ...

  2. 字符串得结果!Java数组模拟栈以实现中缀表达式综合计算器,字符串表达式计算器

    文章目录 数组模拟栈类 中缀表达式计算器类(测试类) 数组模拟栈类 主要实现栈的一些基本功能,以及在该场景下的功能. //先创建一个栈 class AStack {private int maxSiz ...

  3. 数据结构之数组模拟栈

    栈的特点即先进后出,采用数组模拟栈,实现栈的这一特性主要是靠定义一个指针(索引). 指针的初始位置指向的是-1 以下给出代码: package com.ebiz.stack;/*** @author ...

  4. 数据结构 - 栈(数组模拟栈操作)

    数组模拟栈操作 package stack;import java.util.Scanner;public class ArrayStackDemo {public static void main( ...

  5. java 模拟栈底层用数组_java用数组模拟栈

    package stack2; public interface StackADT { /** * 添加元素 * @param object */ void push(Object object); ...

  6. bash shell数组模拟队列queue和shell数组使用技巧

    一 shell数组操作模拟队列queue或者栈stack http://www.tech-recipes.com/rx/911/queue-and-stack-using-array/ here is ...

  7. 数组模拟栈和队列板子

    使用数组模拟数据结构栈和队列 栈:后进先出 对于栈:我们使用tt表示栈顶的下标,如果tt==0表示栈空 队列:先进先出 对于队列,我们使用hh表示队首,tt表示队尾,tt初始化为-1,判断队列是否为空 ...

  8. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  9. 简单用数组模拟顺序栈(c++)

    **栈是一种操作受限制的线性表,太多官方的话我也不说了,我们都知道栈元素是先进后出的,它有两种存储结构,分别是顺序存储结构和链式存储结构. **今天我先记一下顺序存储结构,后面我会加上链式存储结构的. ...

最新文章

  1. MySQL 数据库 练习题
  2. 在编译内核时出现uudecode错误
  3. 反应速度测试软件,用批处理实现的反应速度测试工具
  4. various,variable,varied,different, diverse的区别
  5. HTML5自定义数据属性data-*
  6. 计算机三级网络技术综合题解析,计算机三级网络技术上机考试习题答案及解析...
  7. 凸优化第二章凸集 2.4广义不等式
  8. .net中的装箱与拆箱!
  9. sql 脚本 昨天的日期获取,今天的前一天的数据获取, 前两个月的今天
  10. 使用Photoshop辅助线制作ps切片教程
  11. echarts动态渲染柱状图背景颜色以及顶部数值
  12. vue中使用$refs获取不到DOM元素
  13. 存储和虚拟化服务器的对接,储存虚拟化
  14. SAP请求释放怎么撤回
  15. 77go论坛性能测试
  16. PBO(Pixel Buffer Object),将像素数据存储在显存中
  17. 富友eERP打造服装企业电子商务快鱼时代
  18. php提取新闻图片,php新闻采集并生成图片
  19. 在yolov5的网络结构中添加注意力机制模块
  20. 被动套接字 主动套接字_了解网络套接字及其可能性

热门文章

  1. 财路网每日原创推送:区块链3.0时代:资产上链将助攻实体经济未来?
  2. Hyperledger Fabric资产案例-链码实例
  3. Mac OS terminal 查看内存使用情况的命令
  4. 怎么做才能给直播软件开发出“守护功能”的代码教程
  5. 2021抖音五一数据报告
  6. B端体验度量衡-体验度量衡指标以及实施篇
  7. autoquad飞控软件架构分析
  8. 理解熵(信息熵,交叉熵,相对熵)
  9. 软件测试笔记,测试用例设计
  10. 使用IBM SPSS Modeler进行随机森林算法预测