0

我称它为队列,但根据维基百科,队列是先进先出的数据结构。

您添加到“前面”。而你从“结束”中删除。

我正在做相反的事情。

我正在添加到“结束”。并从“正面”移除。(使用 push() 和 shift() )

因为 front 和 end 没有任何具体含义,所以方向是否重要?

我只是从 wikipedia 和mdn中获取示例。

我可以称之为队列吗?

4

3 回答 3

3

我可以称之为队列吗?

绝对的。您引用的定义是正确的;队列是“FIFO”,先进先出。这并不一定意味着您必须使用数组的一端或另一端。实际上,您甚至不需要数组。您也可以使用链表来表示队列。

于 2013-04-05T15:25:56.030 回答
1

将变量名“front”更改为“end”和“end”更改为“front”不会更改您正在使用的数据结构或算法。它仍然是一个队列。

这就是你所做的一切。如果您选择将“前端”和“末端”的角色颠倒过来,这并不重要。当您在出纳员处排队时,您进入“末端”并等到您在“前面”。那是一个队列。

于 2013-04-05T15:27:34.120 回答
1

我一直听说队列在语义上被描述为添加到后端/尾部的入队项目和从前端/头部删除的出队项目。

我上面描述的内容与您链接到的维基百科文章一致。我不确定你在哪里找到了相反的语义。

计算机不会关心你给变量取什么名字。但是,我建议您坚持我在开场白中描述的惯例,以符合惯例。

我还建议您pop从代码中删除调用(使用 shift 代替)以避免混淆。

于 2013-04-05T15:35:14.907 回答