Работа со списком, структуры - код не компилируется - C (СИ)

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

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

Добрый вечер, сегодня на паре препод написал на доске, мы ничего не поняли, никто не может помочь разобраться?(( Буду очень благодарен любым разъяснениям
#include <stdio.h>
 
int main ()
{
    struct node
    {
        struct node* next;
        void* data;
    };
 
    next == 0; /* конец списка */

    struct node* node_alloc ()
    {
        struct node* p=(struct node*) malloc (sizeof (struct node));
        p->next=0;
        return p;
    };
/* Добавление/удаление элемента в списке */
    void node_insert_after (struct node* list, struct node* item)
    {
        struct node* next = list -> next;
        list -> next = item;
        item -> next = next;
    };
    
/* Выделение эл-тов из списка */
 
    struct node* node_remove_after (struct node* list)
    {
        struct node* next = list -> next;
        list -> next = next -> next;
        next -> next = 0;
        return next;
    };
}
использую Xcode (ну просто нет дома РС) компилятор выдал ондни ошибки (((
upupup

Решение задачи: «Работа со списком, структуры - код не компилируется»

textual
Листинг программы
        struct node* node_remove_after (struct node* list)
        {
                struct node* next = list -> next;
                list -> next = next -> next;
                next -> next = 0;
                return next;
        };

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

  1. В функции node_remove_after предполагается, что список представлен в виде связанных между собой узлов.
  2. При вызове функции node_remove_after в качестве аргумента передается указатель на первый узел списка.
  3. Внутри функции создается временная переменная next типа struct node* и инициализируется значением list->next.
  4. Значение list->next изменяется на next->next, т.е. на следующий узел списка после текущего.
  5. Значение next->next изменяется на 0, т.е. на NULL, что означает конец списка.
  6. Функция возвращает указатель на узел, который был только что отрезан от списка.
  7. Отрезанный узел теперь может быть безопасно удален, так как он больше не связан с остальной частью списка.

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


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

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

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