Создать список из случайных целых чисел и удалить из него отрицательные элементы - C (СИ)
Формулировка задачи:
Решение задачи: «Создать список из случайных целых чисел и удалить из него отрицательные элементы»
struct Node { int data; Node *next; }; struct Stack { Node *begin; }; Stack *CreateStack() { Stack *s = new Stack; s->begin= NULL; return s; } bool Empty(Stack *s) { if (s->begin == NULL) return true; return false; } void PushBack(Stack *s, int data) { Node *tmp = new Node; tmp->data = data; tmp->next = NULL; if (Empty (s)) { s->begin = tmp; return; } Node *n1 = s->begin; Node *n2 = s->begin->next; while (n2 != NULL) { n1 = n1->next; n2 = n2->next; } n1->next = tmp; } void PopFront(Stack *s) { if (Empty (s)) return; Node *tmp = s->begin; s->begin = s->begin->next; delete tmp; } int Top(Stack *s) { return s->begin->data; } void Print(Stack *s) { Node *tmp = s->begin; while (tmp != NULL) { printf("%5d", tmp->data); tmp = tmp->next; } printf("\n"); } void Clear(Stack *s) { Node *tmp = s->begin; while (s->begin != NULL) PopFront(s); }
Объяснение кода листинга программы
Код представляет собой реализацию односвязного стека с использованием структуры Node. Список из случайных целых чисел создаётся во вспомогательной функции FillStack. В ней используется цикл, который заполняет стек значениями, полученными из функции rand(). Каждое сгенерированное число проверяется на отрицательность, и если оно положительное, то добавляется в стек с помощью функции PushBack. Если же число отрицательное, то оно пропускается. После заполнения стека значениями, функция Clear удаляет все элементы из стека. Далее, в функции Main, создаётся экземпляр стека, заполняется списком из случайных целых чисел с помощью функции FillStack, и выводится на экран с помощью функции Print.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д