Создать и заполнить линейный односвязный список - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Мне нужно создать и заполнить линейный односвязный список. Вот код, который у меня получился:
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. typedef struct Node
  5. {
  6. int val;
  7. struct Node *next;
  8. } Node;
  9. void PushList(Node** head, int value)
  10. {
  11. Node *tmp = (Node*)malloc(sizeof(Node));
  12. tmp->val = value;
  13. tmp->next = (*head);
  14. (*head) = tmp;
  15. free(tmp);
  16. }
  17. void PrintList(const Node *head)
  18. {
  19. while (head != NULL)
  20. {
  21. printf("%d", head->val);
  22. head = head->next;
  23. }
  24. printf("\n");
  25. }
  26. void main()
  27. {
  28. int i;
  29. Node *head = NULL;
  30. for (i = 0; i<10; i++)
  31. PushList(head, i);
  32. PrintList;
  33. }
Вроде бы все правильно, никаких ошибок не выдает, но программа не работает. Подскажите пожалуйста что не так!

Решение задачи: «Создать и заполнить линейный односвязный список»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. typedef struct Node
  5. {
  6.     int val;
  7.     struct Node *next;
  8. } Node;
  9. void PushList(Node** head, int value)
  10. {
  11.     Node *tmp = (Node*)malloc(sizeof(Node));
  12.     tmp->val = value;
  13.     tmp->next = (*head);
  14.     (*head) = tmp;
  15.     free(tmp); // Ни в коем случае. Ведь этот узел должен хранить значение
  16. }
  17. void PrintList(const Node *head)
  18. {
  19.     while (head != NULL)
  20.     {
  21.         printf("%d", head->val);
  22.         head = head->next;
  23.     }
  24.     printf("\n");
  25. }
  26. void main()
  27. {
  28.     int i;
  29.     Node *head = NULL;
  30.     for (i = 0; i<10; i++)
  31.         PushList(head, i); // Нужно передавать не указатель, а его адрес
  32.     PrintList; // Вообще "абракадабра". Функция так не вызывается. Тем более она требует передачу параметра head
  33. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы