One would need to see the entire error message to know precisely what the problem is. Very, very often, it's a mismatch in the level of indirection, or a misperception between the difference between an array name and a pointer. Sometimes it's as simple as the difference between a char and an array of char. Look at your function definition:
cityNode* createNode(double x, double y, char tempCity)
{
...
blah blah blah
...
} This says that "tempCity" is A SINGLE CHARACTER, from the viewpoint of what the function expects to find in its argument list. That would (in English) restrict you to a maximum of 26 distinct cities. I doubt that's what you truly intend. I suspect you meant to reference an array of char.