Вывод элементов списка - C (СИ)

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

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

Здравствуйте! Есть односвязный список, требуется вывести все его элементы. Но суть в том, что я начинаю прогон по списку с head'а, в котором у меня последнее введенное значение, т.е, соответственно, список выводится в порядке, обратном тому порядку, в котором я вводил список. Как вывести элементы списка в обратном порядке? Подскажите пожалуйста. Заранее благодарю.

Решение задачи: «Вывод элементов списка»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef int Data;
  5.  
  6. typedef struct Node {
  7.     Data data;
  8.     struct Node* next;
  9. }   Node;
  10.  
  11. //-----------------------------------------------------------------------------
  12. void push(Node** list, const Data data) {
  13.     Node* node = malloc(sizeof(Node));
  14.     node->data = data;
  15.     node->next = *list;
  16.     *list = node;
  17. }
  18. //-----------------------------------------------------------------------------
  19. void printFromHead(const Node* list) {
  20.     if (list) {
  21.         printf("%d ", list->data);
  22.         printFromHead(list->next);
  23.     }
  24. }
  25. //-----------------------------------------------------------------------------
  26. void printFromTail(const Node* list) {
  27.     if (list) {
  28.         printFromTail(list->next);
  29.         printf("%d ", list->data);
  30.     }
  31. }
  32. //-----------------------------------------------------------------------------
  33.  
  34. int main() {
  35.     int i;
  36.     Node* list = NULL;
  37.  
  38.     for (i = 0; i < 10; ++i) {
  39.         push(&list, i + 1);
  40.     }
  41.  
  42.     printFromHead(list); putchar('\n');
  43.     printFromTail(list); putchar('\n');
  44.  
  45.     return 0;
  46. }

Объяснение кода листинга программы

  1. Подключаются необходимые заголовочные файлы
  2. Объявляются типы данных для элементов списка
  3. Определяется структура узла списка
  4. Создаются функции для добавления элемента в начало списка и для вывода элементов из начала и конца списка
  5. В функции main создается список и заполняется элементами
  6. Вызываются функции для вывода элементов списка
  7. Программа завершается возвратом значения 0, что означает успешное выполнение

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


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

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

15   голосов , оценка 3.933 из 5

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

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

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