【发布时间】:2013-08-20 08:50:09
【问题描述】:
我正在从 Goodrich 学习 C++ 的数据结构和算法。他们给出了这个 LinkedList 实现。我理解代码,但我不理解,但我无法在主类中使用它。如何构造实例并进行插入、删除?例如,我尝试按如下方式创建该类的实例:
StringLinkedList() L;
但它显示错误:预期的“;”在'L
之前#include <iostream>
#include <string>
using namespace std;
class StringNode {
private:
string elem;
StringNode* next;
friend class StringLinkedList;
};
class StringLinkedList{
public:
StringLinkedList();
~StringLinkedList();
bool empty() const;
const string& front() const;
void addFront(const string& e);
void removeFront();
private:
StringNode* head;
};
StringLinkedList::StringLinkedList()
:head(NULL) {}
StringLinkedList::~StringLinkedList()
{while (!empty()) removeFront();}
bool StringLinkedList::empty() const
{return head==NULL;}
const string& StringLinkedList::front() const
{return head->elem;}
void StringLinkedList::addFront(const string& e){
StringNode* v = new StringNode;
v->elem=e;
v->next = head;
head=v;
}
void StringLinkedList::removeFront(){
StringNode* old=head;
head = old->next;
delete old;
}
int main () {
}
【问题讨论】:
-
“但我不是,但我无法在主类中使用它” - 你遇到的确切问题是什么?请展示一些您如何使用它的示例代码。
-
好的。我尝试使用如下构造函数构造类的实例: StringLinkedList() L;但它显示了预期的错误“;”在“L”之前。我不知道创建实例的任何其他方式。
-
请在提供更多详细信息时编辑问题,不要将该信息添加到 cmets
-
这个“链表实现”在我看来更像是一个通过链表实现的栈:你只能在任何时候访问链表的头部,并且有甚至没有任何迭代它的方法。
-
你知道如何在 C++ 中实例化 any 类吗?也许这就是问题所在。
标签: c++ data-structures linked-list