Я только начал программировать на C для школы. Меня просят сделать программу, которая использует структуру FIFO для решения математических задач. Я получил следующий код в Интернете для FIFO, я просто не знаю, как его использовать. Я пробовал много вещей, и я не могу найти ничего полезного в Интернете или, может быть, я просто не знаю, что нужно делать, но не могли бы вы мне помочь? Благодаря!Как вы используете структуру typedef для FIFO?
#include <stdio.h>
#include <stdlib.h>
typedef struct pile
{
int donnee;
struct pile *precedent;
} Pile;
void pile_push(Pile **p_pile, int donnee)
{
Pile *p_nouveau = malloc(sizeof *p_nouveau);
if (p_nouveau != NULL)
{
p_nouveau->donnee = donnee;
p_nouveau->precedent = *p_pile;
*p_pile = p_nouveau;
}
}
int pile_pop(Pile **p_pile)
{
int ret = -1;
if (p_pile != NULL)
{
Pile *temporaire = (*p_pile)->precedent;
ret = (*p_pile)->donnee;
free(*p_pile), *p_pile = NULL;
*p_pile = temporaire;
}
return ret;
}
void pile_clear(Pile **p_pile)
{
while (*p_pile != NULL)
{
pile_pop(p_pile);
}
}
Я попытался сделать это:
int main()
{
int return_val;
Pile pile;
pile_push(Pile, 5);
return_val = pile_pop(Pile);
printf(return_val);
}
и получил эту ошибку:
expected expression before 'Pile'
too few arguments to function 'pile_push'
Каков ваш точный вопрос mon ami? –
Если вы не понимаете код, как вы знаете, он даже сделает то, что вы хотите? Принимать случайный код из Интернета, который вы даже не можете понять, вероятно, не является отличной идеей. Лучше изучать вещи с первых принципов. Во всяком случае, «typedef struct for fifo» на самом деле не имеет большого смысла. Как вы думаете, что такое «fifo struct» (непонятно, каковы ваши намерения)? – kaylum
Попробуйте найти термин «очередь»; который использует дисциплину FIFO. Существуют также стеки (LIFO или «последний в первом порядке») и очереди (очереди с двойным концом), которые объединяют функции стека и очереди. –