我想知道如何更新/修改下面的类定义来实现一个队列。哪些类元素或方法会改变?
我正在准备期末考试,这是我在上一次考试中答错的问题之一。我的教授坚持使用这种特定的类结构来实现队列,但是我们没有在课堂上复习过,也没有在教科书中提到。
#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
1条答案
按热度按时间wz3gfoph1#
访问一个单链表的尾部是一个O(n)的操作。* 除非 * 实现被正确地封装,并且列表的内部结构不能被直接操纵,在这种情况下,实现可以安全地跟踪列表的尾部节点,允许对尾部的操作是O(1)的。