Распечатать очередь из тех чисел, после которых не стоит заданное число - 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 используется как разделитель между элементами списка.