Распечатать очередь из тех чисел, после которых не стоит заданное число - C (СИ)

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

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

Помогите пожалуйста, работы на 2 минуты. Есть очередь из целых чисел, нужно распечатать очередь из тех, после которых не стоит заданное число. Вот объявление списка:
typedef struct node_t
{
    int value;
    struct node_t* next;
}  TNode;
 
typedef struct list_t
{
    TNode* head;
    TNode* tail;
}  TList;
Вот вызов функции печати (е - то самое число):
while (!IsEmpty(&list))
    {
        printf("%d ", Pop(&list, e));
    }
Вот сама функция:
int Pop(TList* list, int e)
{
    TNode* node = list->head;
    list->head = node->next;
    if (list->head == NULL)
    {
        list->tail = NULL;
    }
    int value = node->value;
    free(node);
 
    return value;
}
Вот ее нужно переделать под это условие, чтобы возвращались только те, у которых
list->head->next->value != e
или
node->next->value != е
(вот именно в этом не разбираюсь). Спасибо заранее!
Вариант:
void write(int n){
 TNode *i=list->head;
 for(;i;i=i->next) 
  if(i->next && i->next->value!=n) {printf("%5d",i->value);i=i->next;}
}
© Stilet Но печатает не все.

Решение задачи: «Распечатать очередь из тех чисел, после которых не стоит заданное число»

textual
Листинг программы
void write(int n){
    TNode* i;
    for (i = list->head; i; i = i->next) {
        if (!(i->next && (i->next->value == n))) {
            printf("%5d", i->value);
        }
    }
}

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

В данном коде представлена функция под названием write, которая принимает целочисленный аргумент n. Функция обращается к связанному списку (очереди) и перебирает его элементы. Если текущий элемент не последний в списке и следующий элемент в списке имеет значение n, то текущий элемент не печатается. В противном случае, значение текущего элемента выводится на экран с помощью функции printf. Значение n используется как разделитель между элементами списка.

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


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

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

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