Hi locksmith.

The data structure is just a set of data that describes the game design, and what you would aim to do typically is to make the game code as generic as possible and put the game design into the database. Giving my layout some thought, I came up with the following possible data structures. This is very extensible so you could easily use it as the basis for a real game:
int traps[]={0,1,0,0,0,0,0}; // 1=bottomless pit

// Directions encoded as what locations are NSWE per position. X=no exit that way.
// Since we only have single digit location IDs we can just use a single character 0-6.
// START=0 and END=6.  Y is X or 6 depending if the puzzle at 3 is solved; we'll handle that in code.
char *directions="0:12X3 1:X0X3 2:0XXX 3:XX04 4:5X3Y 5:X4XX 6:XX4X"; // NSWE

const int MAXINV=20;
int inv[MAXINV];
int inv_next=0; // Inventory. inv_next is next free slot, let's say we can only have 20 items.

int monsters[]={0,0,1,0,0,2,0}; // what monsters are at what positions. 1=imp, 2=balrog. 0=no monster
int monster_strength[]={0,10,20}; // monster info for battle scenes
int monster_skill[]={0,10,100}; // ditto
int puzzles[]={0,0,0,1,0,0,0}; // what puzzles are at what positions
int solved[2]; // init to zero in the program.  When we solve puzzle N, set solved[N] to 1.
int benefits[]={1,0,0,0,0,0,2}; // what player benefits are at what positions. 1=axe, 2=exit teleport
char *descriptions[]={ // Position descriptions
	"Waking from the teleport you are in a bit of a daze etc blah blah set the scene and so on.\n"
	"There is an axe here.\n",

	"You trip and fall into a bottomless pit.  Since it's bottomless what you'll\n"
	"actually die of is thirst, rather than hitting the bottom, although you might\n"
	"knock yourself out on the sides.  Your game is over.\n",

	"Whoops! As you walk through the forest you accidentally step on a sleeping Imp's\n"
	"tail and wake him up.  He's not impressed, so now you have to fight\n",

	"You find a piece of paper with the words MENE MENE TEKEL PARSIN written on them.\n"
	"It is asking for a name and two numbers.  What are they?\n",

	"Nothing interesting\n",

	"Oh, I dunno.  A Balrog, perhaps.\n",

	"You found the exit teleport!\n"