Из одного стека перенести элемент в другой стек - C (СИ)
Формулировка задачи:
Как организуется стек(и)?
Каким образом можно из одного стека перенести в другой стек элемент?
Решение задачи: «Из одного стека перенести элемент в другой стек»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
typedef struct node_t
{
int value;
struct node_t* next;
} TNode;
//-----------------------------------------------------------------------------
TNode* Push(TNode** stack, int value)
{
TNode* node = (TNode*) malloc(sizeof(TNode));
node->value = value;
node->next = *stack;
*stack = node;
return *stack;
}
//-----------------------------------------------------------------------------
int Pop(TNode** stack)
{
TNode* node = *stack;
*stack = node->next;
int value = node->value;
free(node);
return value;
}
//-----------------------------------------------------------------------------
int IsEmpty(const TNode* stack)
{
return (stack == NULL);
}
//-----------------------------------------------------------------------------
int main()
{
TNode* stack = NULL;
int i;
for (i = 0; i < 10; ++i)
{
Push(&stack, i + 1);
}
while (!IsEmpty(stack))
{
printf("%d ", Pop(&stack));
}
printf("\n");
system("pause");
return 0;
}