2015-05-12 2 views
-1

Я работаю над проблемой, связанной с созданием инвентаря запасов супермаркетов, и у меня возникают значительные трудности. Предполагается, что программа должна запрашивать пользователя для ввода (имя элемента, количество, вес и цену), а затем добавить этот элемент в отсортированную (путем увеличения алфавитного порядка) базу данных.Борьба за формирование связанного списка

Итак, моя идея - создать связанный список. Я начал с определением следующее:

typedef struct item_t item; 
struct item_t{ 
    char name; 
    int weight; 
    int price; 
    int quantity; 
    item *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' или мне нужно также указать имена полей?

Извините, это может быть глупый вопрос, но мне действительно нужно, чтобы кто-то указал мне в правильном направлении.

+0

«И я не знаю, как изменить поля структуры» - пока вы не знаете, как правильно настроить базовые данные в структуре, * и *, как указатели однонаправленного действия используются на языке C, * и * basic динамическое управление памятью, вы будете сталкиваться с стенами после стены. Вы просили направление так:: Узнайте, что * сначала *. – WhozCraig

ответ

0

Вам нужен один глобальный корневой указатель (item_t* root) и инициализируйте его NULL, который является началом вашего списка. Для односвязного списка укажите следующий указатель нового элемента на элемент, на который указывает корень, и измените корень, чтобы указать на вновь созданный элемент.

Посредством этого вы создаете цепочку из цепочек. Конец достигается, когда item.next == NULL.

Смежные вопросы