Создать список из случайных целых чисел и удалить из него отрицательные элементы - C (СИ)

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

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

Всем привет! Ребята помогите! Нужна ваша помощь! "Написать программу по созданию, просмотру, добавлению и решению поставленной задачи для однонаправленного линейного списка (стек и/или очередь). Создать список из случайных положительных и отрицательных целых чисел (от –10 до 10) и удалить из него отрицательные элементы." Если это возможно, то с минимальными комментариями! Спасайте, сессия горит!

Решение задачи: «Создать список из случайных целых чисел и удалить из него отрицательные элементы»

textual
Листинг программы
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.

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


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

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

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