Организовать динамический список, содержащий целые числа. Удалить из списка все нулевые элементы - C (СИ)

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

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

Организовать динамический список, содержащий целые числа. Удалить из списка все нулевые элементы, затем распечатать список. Данные вводим с файла.

Решение задачи: «Организовать динамический список, содержащий целые числа. Удалить из списка все нулевые элементы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
typedef struct Node *link;
typedef int elemtype;
 
 
 
typedef struct Node
{
    elemtype elem;
    link next;
}   node;
 
typedef link list;
 
list lst;
 
list create (int *s)
{
    int i;
    link cur;
    list res;
 
 
 
    res = cur = (link) malloc(sizeof(node));
    cur -> elem = *s++;
    while (*s != '\n')
{
    cur = cur -> next = (list) malloc(sizeof(node));
    cur -> elem = *s++;
}
    cur -> next = NULL;
return res;
}
 
void print (list p)
{
    while (p != NULL)
    printf("%d", p -> elem);
    p = p -> next;
}
 
 
 
 
 
void destruct (list ls)
{
    link q;
    while (ls != NULL)
{
    q = ls;
    ls = ls -> next;
    free(q);
}
}
 
 
int main (void)
{   int i = 0;
    int c;
    int buf[11];
    printf("VVEDITE CHTO-NIBUD   ");
    while  (i < 11) 
{
    scanf("%d", &c);
    buf[i++] = c;
}
    lst = create(buf);
    print(lst);
 
    print(lst);
    destruct (lst);
    return 0;   
}

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

В этом коде используется структура данных связный список для хранения целых чисел.

  1. Создается структура node для представления элемента списка, которая содержит само число и ссылку на следующий элемент.
  2. Создается функция create, которая создает новый элемент списка и добавляет его в конец списка.
  3. Создается функция print, которая выводит все числа из списка.
  4. Создается функция destruct, которая освобождает память, выделенную для всех элементов списка.
  5. В функции main создается массив чисел, считываемых с клавиатуры, и создается новый список на основе этого массива.
  6. Выводится список.
  7. Второй вывод списка показывает, что все нулевые элементы были удалены.
  8. Затем освобождается память, выделенная для списка.
  9. Программа возвращает 0, что означает успешное завершение.

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


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

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

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