gpt4 book ai didi

c++ - 链表 (C/C++)。同时创建列表结构和节点结构的优点/缺点是什么?

转载 作者:行者123 更新时间:2023-12-03 06:57:48 24 4
gpt4 key购买 nike

我在网上看到了各种实现,有些只为其链表创建一个节点结构,而另一些则同时创建一个列表结构和一个节点结构,因此我想知道什么是最佳实践。
list 和 node_struct 实现示例:

typedef struct listnode listnode_t;
struct listnode {
listnode_t *next;
listnode_t *prev;
void *elem;
};

struct list {
listnode_t *head;
listnode_t *tail;
int size;
};
仅节点结构实现示例:
typedef struct node node_t;
struct node {
int data;
node_t *next;
};
node_t *head;
node_t *tail;

最佳答案

I was wondering what is best practice.


用于 c++ 的常用习惯用法是在列表 内创建私有(private)节点结构类型。类(class) :
class list {
struct listnode {
listnode *next;
listnode *prev;
void *elem;
};
listnode *head;
listnode *tail;
int size;

public:
// Some public operations here.
// listnode instances must be referred by clients using the auto keyword
list::listnode* insert_after(list::listnode* prevnode, void* elem) {
list:listnode newNode = new list:listnode();
newNode->elem = elem;
newNode->prev = prevnode;
newNode->next = prevnode->next;
newNode->next->prev = newNode;
prevnode->next = newNode;
return newNode;
}
};

而 C++ 中真正的最佳实践就是使用 std::list<T> 来自标准库。

关于c++ - 链表 (C/C++)。同时创建列表结构和节点结构的优点/缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64185400/

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