Когда у вас есть указатель на структуру, как в случае temp
в вашем insert()
, вместо того, чтобы делать что-то вроде
(*temp).data
, вы можете использовать оператор стрелки и сделать
temp->data
Поскольку это программа на C, при объявлении структурных переменных структуры Node
необходимо использовать
struct Node var_name;
вместо
Node var_name;
А в C лучше не приводить явно возвращаемое значение malloc()
.См. this .
Поэтому измените объявление temp
в insert()
на
struct Node *temp = malloc(sizeof(struct Node));
вместо Node *temp = (Node*) malloc(sizeof(struct Node));
.
И если вы пытаетесь добавить новые элементы в начало связанного списка, вы можете изменить функцию insert()
на что-то вроде
void insert(int x) {
struct Node *temp = malloc(sizeof(struct Node));
temp->data = x;
temp->next = NULL;
if(head!=NULL)
{
temp->next = head;
}
head = temp;
}
С этими изменениями я получилследующий вывод:
How many numbers?
4
Enter the number
12
List is: 12
Enter the number
34
List is: 34 12
Enter the number
56
List is: 56 34 12
Enter the number
778
List is: 778 56 34 12