gpt4 book ai didi

c - 努力形成一个链表

转载 作者:行者123 更新时间:2023-11-30 19:43:02 25 4
gpt4 key购买 nike

我正在解决一个涉及创建超市库存库存的问题,但我遇到了相当大的困难。该程序应该做的是提示用户输入(商品名称、数量、重量和价格),然后将该商品添加到排序(按字母顺序递增)的数据库中。

所以我的想法是创建一个链表。我首先定义以下内容:

typedef struct item_t item;
struct item_t{
char name;
int weight;
int price;
int quantity;
item *next;
};

因此,我想要的想法是,每个项目都将其详细信息存储在该结构类型中,并且 *next 将指向链接列表中的下一个结构。

接下来我想出了这个:

void add_new_node_at_end(char *user_input){
new_node = (*item_t)malloc(sizeof(item_t))
if (new_node == NULL){
printf("Memory failure");
exit(EXIT_FAILURE);
}
}

到目前为止这是否正确?

现在,当我创建新节点时,我不太确定如何处理指针 *next,也不知道如何更改结构的字段。我可以简单地使用 new_node.item = 'string' 还是还需要 malloc 字段名称?

抱歉,这可能是一个愚蠢的问题,但我真的需要有人为我指明正确的方向。

最佳答案

您需要一个全局根指针 (item_t* root) 并使用 NULL 对其进行初始化,这是列表的开头。对于单链表,将新元素的next指针指向root所指向的元素,并将root改为指向新创建的元素。

通过这样做,您可以创建元素的菊花链。当 item.next == NULL 时到达结束。

关于c - 努力形成一个链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30183737/

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