我想知道如何更新/修改以下类定义来实现队列。哪些类元素或方法会改变?
我正在准备期末考试,这是我之前考试中问的一个问题,我答错了。我的教授坚持使用这种特定的类结构来实现队列,但是我们没有在课堂上讨论它,也没有在我们的教科书中。
#include <iostream>
#include <string>
using namespace std;
class StringNode{
private:
string elem;
stringNode* next;
friend class StringLinkedList;
};
//Code fragment 1
class StringLinkedList{
public:
StringLinkedList(){
head == NULL;
}
~StringLinkedList();{
while(!empty()){
removeFront();
}
}
bool empty() const{
return head == NULL;
}
const string& front() const{
return head->elem;
}
void addFront(const string& e);
void removeFront();
private:
StringNode* head;
};
//Code fragment 2
访问单链表的尾部是一个O(n)的操作。除非实现被正确封装,并且不能直接操作列表的内部结构,在这种情况下,该实现可能安全地跟踪列表的尾部节点,允许尾部的操作为O(1)。