You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中如何创建可通过索引访问的LIFO栈数组/列表?

用fliof包创建可索引访问的多LIFO栈

初始化指定数量的栈

别用array,直接用列表存多个LIFO栈才对——因为LIFO()返回的是环境对象,array搞不定这种类型的存储。比如要建5个空栈:

library(fliof)
# 生成5个空LIFO栈,存进列表
stack_list <- lapply(1:5, function(i) LIFO())

访问特定栈并操作

用列表的双层索引[[n]]直接定位到第n个栈,再调用push()/pop()/peek():

# 给第1个栈塞个4
push(stack_list[[1]], 4)
# 看看第1个栈顶是什么
peek(stack_list[[1]])
# 弹出第1个栈的元素
pop(stack_list[[1]])

# 操作第3个栈示例
push(stack_list[[3]], c(10, 20))
peek(stack_list[[3]])

你的原代码问题

  • x<-array(s, dim-1):首先dim参数要写dim=1,其次array存不了LIFO环境对象,会导致后续push()找不到正确的栈环境;
  • push(x[1],4):就算array创建成功,x[1]取到的元素也不是直接的LIFO对象引用,push()没法识别,必须用列表的[[索引]]直接拿到栈对象。

内容的提问来源于stack exchange,提问作者louarnold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:33:08