icp/oer/courses/c-advanced/sections/02-basic-algorithms/02-calculator/stack.h

45 lines
675 B
C

#include <stdlib.h>
typedef struct node
{
float Value;
struct node *Next;
}node;
typedef struct
{
node *Top;
}stack;
node *alloc_node(float Value, node *Next)
{
node *NewNode = malloc(sizeof(node));
NewNode->Value = Value;
NewNode->Next = Next;
return NewNode;
}
void push(stack *Stack, float Value)
{
// TODO: implement this
node *NewNode = alloc_node(Value, Stack->Top);
Stack->Top = NewNode;
}
float pop(stack *Stack)
{
// TODO: implement this
float Result = Stack->Top->Value;
node *Top = Stack->Top->Next;
free(Stack->Top);
Stack->Top = Top;
return Result;
}
node *peak(stack *Stack)
{
// TODO: implement this
return Stack->Top;
}