There is no difference in computers between them. A multi branching path maze can be both solved and created extremely fast using a stack. I would consider a labyrinth a complex connection of smaller mazes. So you might have a 4x4 array of mazes all interconnecting all creating just one correct path through the complete labyrinth.
Code:
class maze_cell
{
...
unsigned int maze_id;
unsigned int row;
unsigned int col;
bool walls[4];
};
class maze
{
...
int height;
int width;
maze_cell *maze_data;
};
class labyrinth
{
...
int height;
int width;
maze *labyrinth_data;
};