苦苦挣扎形成一个链表

时间:2015-05-12 06:50:40

标签: c data-structures struct linked-list

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

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

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);
    }
}

到目前为止这是正确的吗?

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

对不起,这可能是一个愚蠢的问题,但我真的需要有人指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

您需要一个全局根指针(item.next == NULL)并使用{{1}}初始化它,这是列表的开头。对于单链接列表,将新元素的下一个指针指向root指向的元素,并将root更改为指向新创建的元素。

通过这样做,您可以创建菊花链元素。 {{1}}时会到达终点。