我对数据结构和算法非常陌生。我想在我正在制作的杂货店库存程序中使用递归+堆栈/队列。然而,我无法想出任何好的方法来使用递归,这种方式有助于我的杂货店库存系统。
我知道递归可以用在河内的塔楼上,产生回文和其他随机的东西,比如制作图案。然而,我不知道如何将它应用到杂货店的库存系统中,这样才能为与程序交互的工作人员提供价值。
我不知道如何实现递归,我只需要知道我可以用它做些什么,这样可以为我的杂货店库存应用程序增加价值。订单系统能够有效地使用递归吗?
发布于 2020-05-26 17:50:37
使用递归的一种方法是使用产品搜索函数,使用简单的二进制搜索树或类似的东西来存储数据。https://en.wikipedia.org/wiki/Binary_搜索_树
添加、删除和修改库存项非常简单,而且数据结构类中通常包含一些内容。
至于使用队列,您可以使用表单(product_id,count_change)构建库存更改列表,您可以通过使用前面讨论的搜索功能来处理这些更改。
此外,从文本文件中读取清单并将其写回的能力将很容易地实现这些概念,并使您在开发过程中更容易识别bug。
发布于 2020-05-26 17:36:36
库存系统似乎不能为这类事情提供很多机会。如果你这样做是为了工作,我同意阿蒙的观点,试图强行采取这样的解决方案并不是一个好主意。它将降低您正在产生的解决方案的价值。递归也会带来一些性能上的损失,这取决于许多因素。不过,当它很合适的时候,它确实可以简化一些事情。
目前我能想出的最好的方法就是一个补货算法。假设一家商店用完了一些东西,例如卫生纸。您需要设法找到最近的仓库和/或分销商,可以为您提供一些。
您可以使用递归策略来实现这一点。首先,您需要一棵具有单个根节点的树。在此情况下,您可以添加“分销商”和“仓库”。在这种情况下,每个子集都越来越小。这可能是基于物理位置(这可能是您自己的仓库所需要的)。对于分销商来说,也许你想把它分为公司和地点。
也许,你可以用一个直进循环来充分解决这个问题。这里的递归策略的主要好处是如果您想要并行化搜索。要做到这一点是值得的,搜索空间需要非常大,很可能。
https://softwareengineering.stackexchange.com/questions/410660
复制相似问题