typedef struct list_item {
char *value;
struct list_item *next;
struct lst_item *prev;
} list_item_t;
typedef struct single_list {
list_item_t *head;
list_item_t *tail;
} slist_t;
void init(slist_t *list);
void add(slist_t *list, int value);
此代码位于头文件中。我需要实现一个双向链表。我目前正在处理init函数,我无法理解代码的两个typedef结构部分。有人可以给我一个关于他们到底在做什么的解释。感谢
答案 0 :(得分:0)
struct
关键字允许您存储多个类型数据,它是一个结构。
在该结构中,您可以找到两个具有相同数据类型的指针,这使得结构成为link list
。现在,您可以将多个char *value in list_item
全部链接在一起。
关键字typedef允许使用您在末尾设置的变量名称声明list_item结构,在这种情况下list_item_t
。
声明示例:list_item_t my_list;
代替:stuct list_item my_list;
single_list用于通过访问第一个元素或最后一个元素轻松访问list_item结构。
你编码然后调用两个你没有向我们展示的函数,但我假设他们的名字是第一个创建整个列表,第二个允许你添加一个元素到列表。
答案 1 :(得分:0)
list_item
在列表中创建一个项目。我的意思是列表中的一个节点。但single_list
创建一个列表。它在一个节点中有许多列表项。你可能有很多名单。 (您可以使用single_list
创建多个列表,并可以使用list_items
向这些列表添加多个项目。