gpt4 book ai didi

c++ - (第二学期 C++)(家庭作业)链表建议

转载 作者:行者123 更新时间:2023-11-30 05:47:29 26 4
gpt4 key购买 nike

我目前正在用 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();
};

我真的只需要关于如何处理链表函数定义的建议,但我也会听取有关改进我的代码的建议。谢谢:)

编辑:删除了其他代码,以防将来的类(class)中有人偶然发现这篇文章。

最佳答案

我将描述如何实现每个功能。不会给你代码。

LinkedList():这是链表的构造函数。该函数应该是您定义链表的类的一部分。每当初始化链表时都会调用它。您可以使用它定义链表的第一个节点并将其设置为 NULL。

~LinkedList():这是链表的析构函数。它将释放分配给链表的所有内存。实现它时,它会为链表的所有元素释放内存,而不是仅仅将第一个元素设置为 NULL。

AddLinkToBack(void* ptr):添加一个元素到链表的末尾。这应该遍历到链表的末尾,将最后一个元素的next指针设置为参数传入的指针。在执行此操作之前,您还应该取消引用 void 指针。

RemoveLinkFromFront():删除第一个元素。为此,您可以将列表的第一个元素设置为 first->next,并释放分配给第一个元素的内存。

GetFirstElement():返回指向链表第一个元素的指针。

GetListLength():遍历整个列表并保留一个指针,每次移动到下一个元素时指针都会递增。到达链表末尾时返回计数器。

关于c++ - (第二学期 C++)(家庭作业)链表建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28535345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com