Я застрял в проблемах со списками, проблема в том, что, когда я пытаюсь распечатать весь список, он печатает только первый узел, главная цель - иметь в main.c только вызов функцийкоторые находятся в файле functions.c, который связан с файлом header.h.Вот файл main.c, здесь особо нечего сказать
#include<stdio.h>
#include<stdlib.h>
#include "header.h"
int main(void){
List l;
listNotOrdered(&l, 6);
headInsertion(&l, 10);
printList(&l);
}
Это файл header.h.
typedef struct node{
int data;
struct node * next;
}Node;
typedef Node * List;
void listNotOrdered(List *l, int n);
void printList(List *l);
void headInsertion(List *l, int d);
Это - functions.c, логика, лежащая в основе всегофункции должны быть хорошими, это не дает никаких ошибок, я создал функции randomNumber, чтобы создать список со случайными нумераторами, чем чтобы понять, с какого узла начинают печатать printList, я добавил функцию headInsertion, поэтомукогда я печатаю список, он печатает только значение 10, поэтому теоретически он печатает только первый узел.
void headInsertion(List *l, int dato){
Node * aux = (Node*)malloc(sizeof(Node));
aux->data = dato;
aux->next = *l;
*l = aux;
}
void printList(List *l){
while(l){
printf("%d",(*l) -> data);
(*l) = (*l) -> next;
}
}
int randomNumber(int a){
return a = -10 + rand () % ( 20 - 100 + 1);
}
void listNotOrdered(List *l, int n){
srand ( time ( NULL ));
int number, i;
for (i = 0; i < n; i++){
(*l) = (Node*)malloc (sizeof (Node));
(*l) -> data = randomNumber(number);
(*l) -> next = NULL;
l = &(*l)->next;
}
}