#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;
}
