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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
typedef int Data;
 
typedef struct Node {
    Data data;
    struct Node* next;
}   Node;
 
//-----------------------------------------------------------------------------
void push(Node** list, const Data data) {
    Node* node = malloc(sizeof(Node));
    node->data = data;
    node->next = *list;
    *list = node;
}
//-----------------------------------------------------------------------------
void printFromHead(const Node* list) {
    if (list) {
        printf("%d ", list->data);
        printFromHead(list->next);
    }
}
//-----------------------------------------------------------------------------
void printFromTail(const Node* list) {
    if (list) {
        printFromTail(list->next);
        printf("%d ", list->data);
    }
}
//-----------------------------------------------------------------------------
 
int main() {
    int i;
    Node* list = NULL;
 
    for (i = 0; i < 10; ++i) {
        push(&list, i + 1);
    }
 
    printFromHead(list); putchar('\n');
    printFromTail(list); putchar('\n');
 
    return 0;
}

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

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

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


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

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

15   голосов , оценка 3.933 из 5
Похожие ответы