You don't search from the head of the list in
find_person
;
Change;
Link<person> * find_person(string Fname, string Lname)//finds person based on user input
{
Link<person>* first;
Link<person> * temp = first;
To something like;
Link<person> * find_person(string Fname, string Lname)//finds person based on user input
{
Link<person>* first = Head;
Link<person> * temp = first;
Hope this helps,
Fredrik