(第二学期 C++)(家庭作业)链表建议
(2nd term C++)(Homework)Linked Lists Advice
我目前正在用 C++ 编写一个使用链表的程序。问题是,我似乎真的不知道如何使用链表。我知道(一点点)如何使用 classes。
这是老师给的LinkedList.h文件(所以不能修改)
LinkedList.h
struct Node
{
void* data_;
Node* next_;
Node()
{
data_ = 0;
next_ = 0;
}
};
class LinkedList
{
private:
Node* first_;
Node* last_;
long listLen_;
public:
LinkedList();
~LinkedList();
void AddLinkToBack(void* ptr);
void* RemoveLinkFromFront();
Node* GetFirstNode();
long GetListLength();
};
我真的只需要关于如何处理链表函数定义的建议,但我也会听取有关改进我的代码的建议。谢谢:)
编辑:删除了其他代码,以防将来有人 class 偶然发现这个 post。
我将描述如何实现每个功能。不会给你代码。
LinkedList()
:这是链表的构造函数。该函数应该是您定义链表的 class 的一部分。每当初始化链表时都会调用它。您可以使用它定义链表的第一个节点并将其设置为 NULL。
~LinkedList()
:这是链表的析构函数。它将释放分配给链表的所有内存。实现它,以便它为链表的所有元素释放内存,而不是仅仅将第一个元素设置为 NULL。
AddLinkToBack(void* ptr)
:在链表的末尾添加一个元素。这应该遍历到链表的末尾,将最后一个元素的next指针设置为参数传入的指针。在执行此操作之前,您还应该取消引用 void 指针。
RemoveLinkFromFront()
:删除第一个元素。为此,您可以将列表的第一个元素设置为 first->next,并释放分配给第一个元素的内存。
GetFirstElement()
: Return指向链表第一个元素的指针。
GetListLength()
:遍历整个列表并保留一个指针,每次移动到下一个元素时指针都会递增。 Return 到达链表末尾时的计数器。
我目前正在用 C++ 编写一个使用链表的程序。问题是,我似乎真的不知道如何使用链表。我知道(一点点)如何使用 classes。
这是老师给的LinkedList.h文件(所以不能修改)
LinkedList.h
struct Node
{
void* data_;
Node* next_;
Node()
{
data_ = 0;
next_ = 0;
}
};
class LinkedList
{
private:
Node* first_;
Node* last_;
long listLen_;
public:
LinkedList();
~LinkedList();
void AddLinkToBack(void* ptr);
void* RemoveLinkFromFront();
Node* GetFirstNode();
long GetListLength();
};
我真的只需要关于如何处理链表函数定义的建议,但我也会听取有关改进我的代码的建议。谢谢:)
编辑:删除了其他代码,以防将来有人 class 偶然发现这个 post。
我将描述如何实现每个功能。不会给你代码。
LinkedList()
:这是链表的构造函数。该函数应该是您定义链表的 class 的一部分。每当初始化链表时都会调用它。您可以使用它定义链表的第一个节点并将其设置为 NULL。
~LinkedList()
:这是链表的析构函数。它将释放分配给链表的所有内存。实现它,以便它为链表的所有元素释放内存,而不是仅仅将第一个元素设置为 NULL。
AddLinkToBack(void* ptr)
:在链表的末尾添加一个元素。这应该遍历到链表的末尾,将最后一个元素的next指针设置为参数传入的指针。在执行此操作之前,您还应该取消引用 void 指针。
RemoveLinkFromFront()
:删除第一个元素。为此,您可以将列表的第一个元素设置为 first->next,并释放分配给第一个元素的内存。
GetFirstElement()
: Return指向链表第一个元素的指针。
GetListLength()
:遍历整个列表并保留一个指针,每次移动到下一个元素时指针都会递增。 Return 到达链表末尾时的计数器。