问题标签 [lifo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9725 浏览

c++ - C++ LIFO 队列,从 FIFO 到 LIFO 的简单示例

我怎样才能使它成为 LIFO-> 后进先出队列?有什么简单的方法可以做到这一点?这是一个先进先出队列的 FIFO-> fifo。

0 投票
1 回答
2034 浏览

go - golang 频道是基于 LIFO 的吗?

我想知道 golang 频道中元素的顺序。在运行了几个示例之后,元素离开通道的顺序似乎是“后进先出”。我对吗?

以下片段是我使用的示例。运行代码后,输出为 20 10,而 10 先发送到通道,20 最后发送。

0 投票
2 回答
46 浏览

c++ - 使用堆栈查看两个字符串是否相等

目标是有两个字符串,在这个字符串中,有一个退格按钮,表示为<。但是,具有不同位置退格按钮的两个字符串的输出应该相等。

对于该InputsEqual函数,它基本上会在看到退格按钮时从堆栈中弹出顶部项目。

我用不同的文件对其进行了测试,但它仍然无法正常工作。你能检查一下这段代码吗?

//输出:字符串不相等

0 投票
1 回答
2320 浏览

c++ - 有没有办法做一个循环堆栈?

下午好 !

我正在尝试制作某种圆形堆栈。它应该像一个普通的 LIFO 堆栈,但没有明显的限制。它应该消除或跳过当时引入的第一个元素,而不是达到它的最大容量!

例如:

假设我们有一个包含 3 个元素的堆栈:stack[3]

我们通过“推”里面的 3 个元素来填充它:push[a], push[b], push[c].

但随后我们将要添加第 4 个和第 5 个元素:push[d], push[e].

标准堆栈会说堆栈达到了它的限制,它不能再添加任何元素。

但我想要一个循环堆栈,它可以消除或跳过aand b、记住cdande和输出e, dand c;

该项目是在 ESP32 上的 PlatformIO 中完成的,所以我无法访问 C++ STL,即使我有,我认为只为 1 个堆栈编译这么大的库是没有意义的。即使有一段时间我认为我应该编译一个应该让我访问stackor的类似库deque,那个时间已经过去了,因为现在我觉得自己像一个无法解决数学问题的白痴。这已经困扰了我一个多星期了。

我设法在网上找到的是以下 FIFO 循环缓冲区:

在过去的 3 天里,我一直在修补它,但我无法让它按照我想要的方式工作。它是一个 FIFO 结构,将打印a, b,cc, d, e

在这种情况下,我希望它从上到下,从头到尾打印,但我无法弄清楚。

0 投票
2 回答
5362 浏览

data-structures - 队列中的 FIFO 是否等同于 LILO?

我在这里有点困惑。

文章

队列是一种线性结构,它遵循执行操作的特定顺序。顺序是先进先出 (FIFO)。队列的一个很好的例子是资源的任何消费者队列,其中首先服务的消费者。堆栈和队列之间的区别在于移除。在堆栈中,我们删除最近添加的项目;在队列中,我们删除最近最少添加的项目。

FIFO(先进先出)和LILO(后进后出)是一样的说法对吗?

对于堆栈:它是否与 LIFO(后进先出)和 FILO(先进后出)相同?

但是从来没有人使用过 LILO 和 FILO。

0 投票
2 回答
58 浏览

javascript - 堆栈和队列 - Javascript - 实施和工作设置示例的方法?

编辑

I would disagree that this is a duplicate, I am not asking for the best way to implement them, my questions below are asking for clarity on the how many ways are there to define them as well as asking for an example of when this would be thought of and used in a work setting.(即可以定义为对象?)

我正在阅读课程中的一段,需要澄清这一点:

堆栈数据结构实现了一个 LIFO 优先级集合。它提供了这两个功能:push 和 pop。push 将一个元素添加到堆栈的顶部,并且 pop 删除最顶部的元素。

我被给了这个例子given a string, reverse it using a stack

代码

我举了一个例子:

  1. 当您定义堆栈或使用堆栈时,array, linked lists, and as a class您可以定义堆栈的唯一方法是什么?

  2. 在工作环境中考虑和使用这一点的频率是多少?当有人正在构建应用程序并考虑使用它时,是否有一个简单的例子。

  3. 在我在顶部给出的段落中,它说它提供了 2 个功能,push and pop这自动意味着arrayarray methods对吗?除了定义堆栈的其他方法之外,这些是否会被视为额外功能?

0 投票
1 回答
74 浏览

c++ - 递归如何使用栈数据结构?

我最近读到递归使用系统堆栈来存储函数调用的返回地址。所以,我只是做了一个随机代码来理解递归中的这个 LIFO 概念

我期望输出

570

实际输出为

750

我假设函数将按此顺序调用-

fun(6)->fun(5) { it will print 5 then return 0} ->fun(7) { it print 7 then return 0} -> max(0,0) { return 0}

纠正我,我哪里错了。

0 投票
2 回答
581 浏览

android - 如何让 OkHttpClient.Dispatcher 以 LIFO(后进先出)顺序使用 okhttp3.Request?

目标:

最后入队okhttp3.Call的先执行


尝试过的解决方案:LIFO Executor(不起作用)

我找到了一个 LIFO 的解决方案Executor带有 LIFO 排序的执行器服务),并通过这种方式将这种应用ExecutorOkHttpClient

但是,这不起作用

分析

在跟踪源代码后okhttp3.Dispatcher,我发现:

  1. 首先,每个入队Call都被添加(private final Deque<AsyncCall> readyAsyncCalls = new ArrayDeque<>())Dispatcher.java
  2. 然后,这些Calls按FIFO顺序从readyAsyncCalls阻塞双端队列中移出Executor
  3. 最后,Calls in以LIFO顺序Executor执行

就我而言,同时产生了巨大Call的 s,并且消耗它们的线程相对较少。
--> 大部分Calls都在排队Dispatcher而不是Executor在某一刻
--> LIFOExecutor不发挥效果

例子

  • Calls 以 FIFO 顺序从Dispatcher到移动Executor,这个过程非常“低效”。
  • CallExecutor执行状态到执行状态的顺序是 LIFO 顺序。Call但是s中的s很少Executor,LIFO效果不明显。

有谁知道实现这一目标的其他方法?

0 投票
1 回答
78 浏览

sql - Tracking LIFO Orders in SQL

I am trying to map inventory using LIFO to determine the dates the orders initially arrived in the inventory to the day that they leave. However, the inventory can go from positive to negative.

For example:

Day 1: purchase 1,000 units; (inventory 1,000 units)

Day 2: purchase 1,000 units; (inventory 2,000 units)

Day 3: sell 500 units; (inventory 1,500 units)

Day 4: purchase 2,000 units; (inventory 3,500 units)

Day 5: sell 3,000 units; (inventory 500 units)

Day 6: sell 10,000 units; (inventory -9,500 units)

I will need to know that Day 5 units come from a minimum date of day 1 and maximum date of day 4. Is there any way to do this in SQL?

0 投票
1 回答
252 浏览

java - 如何在 LIFO 模式下实现链接阻塞队列

标题已经说明了一切,在我的代码中,我有一个实现链接阻塞队列并提供在队列中插入和获取元素的方法的对象,我希望以 LIFO 方式从队列中插入/提取而不是以先进先出的方式,有什么办法吗?