I have these two headers files and i need to create the implementation file of them. The problem, i dont know how to do the inspect and isIn functions for the OrderedList and the KeyValue Constructor for the KeyValue.cc file. Also for the cc files i am not totally convinced they are right so could someone look at them and see if they are correct:

Code:
//KeyValue.h
#include <string>

class keyValue
{
private:
string word; // primary key value
string definition;
keyValue* next;

keyValue(); // constructor  initialise node

friend class OrderedList;
};
Code:
//OrderedList.h
#include <string>

class OrderedList
{
public:
OrderedList(); // constructor  initialise empty list
~OrderedList(); // destructor

/* insert data into the list in ascending word order.
If the word is already present in the list, update the existing 
definition by concatenating the current one */
void insert( string word, string definition);

/* return definition associated with key w.
return null string if 'w' is not present in the list */
const string inspect( string w ) const;

// whether 'w' is present in the list
bool isIn( string w ) const;

// whether the list is empty
bool isEmpty() const;

// take a keyValue object containing a word and 
// its definition(s). Print it.
void printEntry() const;

private:
keyValue* head;
};
Code:
//file OrderedList.cc
#include <iostream>
#include <stddef.h>
#include "OrderedList.h"
using namespace std;


KeyValue::KeyValue()
{
word = "\0";
next = NULL;

definition = "\0";
next = NULL;
}

OrderedList::OrderedList()
{
head = NULL;
}

OrderedList::~OrderedList()
{
KeyValue* current;
KeyValue* it;

it = head;
while (it != NULL)
{
current = it;
it = it->next;
delete current;
}
}

bool OrderedList::isEmpty() const
{
return head == NULL;
}



void OrderedList::insertBefore(const int newval, const int val)
{
KeyValue* p = new KeyValue;
KeyValue* iterator = NULL; 
KeyValue* previous = NULL;

p->data = newval;
p->next = NULL;
if (isEmpty())
{
cout << "List is empty\n";
}
else
{
for (iterator = head; iterator != NULL; iterator = iterator->next)
{
if (iterator->data == val) 
{
if (iterator == head)
{ 
head = p;
}
else
{
previous->next = p;
}
p->next = iterator;
break;
}
else 
{
previous = iterator;
}
}
}
}


void OrderedList:rintEntry() const
{
if (isEmpty())
{
cout << "List empty" << endl;
}
else // walk along list
{
KeyValue* p = NULL;
for (p=head; p!=NULL; p=p->next)
{
cout << p->data << endl; // display data value
}
}
}
Code:
//KeyValue.cc
#include <string>
#include "KeyValue.h"
using namespace std;

class KeyValue
{
   private:
      string word;      // data stored is a string
      string definition;
      KeyValue* left;       // pointer to left child
      KeyValue* right;      // pointer to right child

      KeyValue();     // constructor


      friend class BST;
};