我目前正在编写一个使用链表的C ++程序。问题是,我似乎无法弄清楚如何使用链表。我知道(一点点)如何使用类。
这是老师给出的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();
};
我真的只需要知道如何处理链接列表函数定义,但我也会听取有关改进代码的建议。谢谢:))
修改:删除其他代码,以防将来某个人偶然发现此帖子。
答案 0 :(得分:1)
我将描述如何实现每个功能。不会给你代码。
LinkedList()
:这是链表的构造函数。此函数应该是您定义链接列表的类的一部分。只要初始化链表,就会调用它。您可以使用它定义链表的第一个节点并将其设置为NULL。
~LinkedList()
:这是链表的析构函数。它将释放分配给链表的所有内存。实现它,以便为链表的所有元素释放内存,而不是仅将第一个元素设置为NULL。
AddLinkToBack(void* ptr)
:在链表的末尾添加一个元素。这应该遍历到链表的末尾,并将最后一个元素的下一个指针设置为参数中传递的指针。在执行此操作之前,您还应该取消引用void指针。
RemoveLinkFromFront()
:删除第一个元素。为此,您可以将列表的第一个元素设置为first-> next,并取消分配给第一个元素的内存。
GetFirstElement()
:返回指向链表第一个元素的指针。
GetListLength()
:遍历整个列表并保持指针旁边每次移动到下一个元素时都会递增。到达链表末尾时返回计数器。