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

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

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

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

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

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

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

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

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


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

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

13   голосов , оценка 4.385 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы