После каждого элемента списка, стоящего на четной позиции добавить элемент =-1 - C (СИ)

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

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

Не могу нормально написать программу. Вообщем, после каждого элемента спика, стоящего на четной позиции добавить элемент =-1.

Решение задачи: «После каждого элемента списка, стоящего на четной позиции добавить элемент =-1»

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

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

В данном коде используется язык программирования C и реализуется задача по изменению списка таким образом, чтобы после каждого элемента, стоящего на четной позиции, добавлялся элемент со значением -1.

  1. Создается структура данных TList, которая представляет собой связный список. Она содержит два поля: value (значение) и next (указатель на следующий элемент списка).
  2. Определены две функции: Push (добавить элемент в список) и Print (распечатать список).
  3. Функция Push добавляет новый элемент в начало списка. Принимает указатель на голову списка и значение нового элемента. Создается новый узел, в котором хранится значение и указатель на следующий элемент. Затем этот новый узел становится головой списка.
  4. Функция Print выводит все элементы списка на экран. Проходит по всем элементам списка, начиная с головы, и выводит значение каждого элемента.
  5. Определена функция Func (измененный список). В ней используется цикл, который проходит по всем элементам списка, начиная с головы. Если текущий элемент является последним (т.е. у него нет следующего элемента), то в него добавляется новый элемент со значением -1.
  6. В функции main создается пустой список и заполняется некоторыми значениями. Затем список выводится на экран с помощью функции Print.
  7. После этого вызывается функция Func, которая изменяет список, добавляя после каждого элемента на четной позиции элемент со значением -1. Измененный список также выводится на экран с помощью функции Print.
  8. В конце программы возвращается значение 0, что означает успешное выполнение программы.

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


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

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

14   голосов , оценка 3.929 из 5

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

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

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