Для проекта я должен создать пустой связанный список в одной функции, а затем использовать этот связанный список в другой функции для добавления в него элементов. На данный момент это мой код для пустого связанного списка:Добавление элементов в пустой список C
typedef struct node_t {
int value;
int priority;
struct node_t *next;
}node;
typedef struct priorty_linked_list {
struct name *head;
int current_size;
int max_size;
}priority_list;
typedef node *Node;
typedef priority_list *List;
Наш инструктор дал нам приведенный выше код, так что не должно быть ничего плохого с ним. Затем я начал с функцией создания:
void create(int max_terms) {
node *head = NULL;
node *next = NULL;
List *current_size = 0;
List *max_size = max_terms;
max_size = (List*)malloc(sizeof(List));
printf("The maximum size for the list is %d",max_terms);
}
Я предполагаю, что следующая функция требует от меня, чтобы использовать функцию возврата из функции создания, но им не уверен, как это сделать. Функция добавления должна принимать очередь, созданную выше как параметр, и не работать, если я не создал очередь раньше из-за выделения памяти.
Любые советы или рекомендации по моему вышеуказанному коду были бы очень признательны!
Спасибо :)
«Наш инструктор дал нам вышеуказанный код, поэтому в нем не должно быть ничего плохого» - в большинстве случаев это неверно;) – Maroun
Список * max_size = max_terms; это неверно, и List * current_size = 0; – Shmoopy
Если ваш инструктор предоставил вам вышеуказанный код, получите нового инструктора. У этого есть вопиющая ошибка. Нет такой вещи, как 'struct name'. И «пустой связанный список», который содержит данные за указателем головы (длина, может быть, указатель на хвост и т. Д.), Обычно выполняется в своей собственной структуре (ваш «priority_list»), где просто инициализируется и возвращается по значению из «создать» функцию. C поддерживает значение-возврат структур, и я не вижу смысла динамически создавать структуру данных списка (вы будете делать это уже с узлами списка *). И *, пожалуйста, не скрывайте типы указателей в typedefs *. – WhozCraig