队列只是链接列表的操作数量有限吗?

时间:2017-07-28 15:07:10

标签: linked-list queue

我有一个家庭作业,我需要建立自己的队列。我上一次的家庭作业涉及建立一个链表。

队列只是一个链接列表,只能添加到前端并从末尾删除吗?我可以复制并粘贴我的链表代码并删除除此之外的所有额外功能吗?

我查看了队列的文档,我看到了一些特定的功能,例如输出我也添加的队列的前/后,但我是否通过先制作链表完成了分配? / p>

3 个答案:

答案 0 :(得分:1)

来自here

  

队列是一个FIFO(先进先出)列表,类似于列表的结构   提供对其元素的限制访问:元素可能只是   插在后面并从前面移除。与堆栈类似,   队列的灵活性不如列表。

所以,是的,你(几乎)是正确的。队列可以使用链接列表作为其基础数据容器。但是,请注意,队列也可以使用std::vector(可能不是最好的主意)或完全不同的东西来存储其数据。无论如何,因为你已经有一个链表可能是一个不错的选择。

不要复制粘贴任何代码!重复的代码总是很糟糕。如果您想要在链接列表实现上更改某些内容,则必须在两个位置执行此操作。由于队列限制了对其元素的访问,因此最简单的实现方式如下:

class MyQueue {
    MyLinkedList data;
public:
    pop_front();
    push_back();
    // ...etc...
};

答案 1 :(得分:0)

从我的Data Structures类中,我记得一个队列是抽象数据类型(ADT),这意味着它是结构应该做什么的描述,而链接列表是ADT的一个实现,使用的是ADT。 在代码中,这两个术语有时可以互换使用,或者有时队列只是一个链接列表,您从一端插入,然后从另一端删除。

答案 2 :(得分:0)

使用链表,数组,两个堆栈等实现队列(它是抽象数据类型)有不同之处。您的链接列表提供了拥有适当队列所需的大部分功能,因此,您的队列实现将非常类似于链接列表。考虑遵循一些常见的队列命名约定,例如enQueue(添加元素),deQueue(删除元素),isEmpty,或者找到对你有意义的其他命令。