Я использую пример, предоставленный Havenard в качестве ответа на этот вопрос: Написание push и pop в c
struct stack_control {
struct stack_control* next;
void* data;
};
void push_stack(struct stack_control** stack, void* data)
{
struct stack_control* temp = malloc(sizeof(struct stack_control));
temp->data = data;
temp->next = *stack;
*stack = temp;
}
void* pop_stack(struct stack_control** stack)
{
void* data = NULL;
struct stack_control* temp = *stack;
if (temp)
{
data = temp->data;
*stack = temp->next;
free(temp);
}
return data;
}
struct stack_control* stack = NULL; // empty stack
Это хорошо сработало для моей цели, но теперь все изменилось, и я бы предпочел, чтобы он использовал FIFO, а не LIFO, и я не могу заставить его работать.