Распечатать очередь из тех чисел, после которых не стоит заданное число - C (СИ)
Формулировка задачи:
Помогите пожалуйста, работы на 2 минуты.
Есть очередь из целых чисел, нужно распечатать очередь из тех, после которых не стоит заданное число.
Вот объявление списка:
Вот вызов функции печати (е - то самое число):
Вот сама функция:
Вот ее нужно переделать под это условие, чтобы возвращались только те, у которых или (вот именно в этом не разбираюсь).
Спасибо заранее!
© Stilet
Но печатает не все.
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;} }
Решение задачи: «Распечатать очередь из тех чисел, после которых не стоит заданное число»
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
используется как разделитель между элементами списка.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д