# Thread: Reversing a Multi-D Array

1. ## Reversing a Multi-D Array

I have an assignment in which I must be able to find all of the ancestors of a node in a general tree and be able to print those ancestors in order from the root down:

the nodes have values that are strings.

I'm having a tough time getting my head around this. All of been able to come up w/ so far is using a multi-dimensional array, finding the values from the node up to the root, storing them in the array and then reversing it.

Not having much luck though. Here's the code I have so far.

// Finds All Of A Node's Ancestors

{

cout << endl;

int foundFlag = 0;

int ctr = 0;

int x = 0;

char temp[500][20];

char reverse[500][20];

Find(findtemp,key,foundFlag ); // Finds value for which ancestors must be found

if (curr == root)

{return;}

cout << curr->value << "'s ancestors are: " << endl;

while (curr->parent->value != NULL)

{

//strcpy(key,curr->parent->value);

strcpy(temp[ctr],curr->parent->value); //input value into array to be reversed later

cout << temp[ctr] << " ";

ctr++;

NextParent();

}

while (x < ctr)

{

strcpy(reverse[(x+ctr)],temp[(ctr-x)]);

x++;

}

cout << endl << endl << temp;

cout << endl << endl << reverse;

}

I have some class specific stuff in there, but you should be able to follow it.

When I print out the stuff at the end I get Hex addresses. Can anyone help? Or maybe tell me a better way of doing this?

Thanks

2. I didnt check over your code but from hearing you mention the Hex address thing, it would sound like your printing the address of the node instead of the actual values. You must be printing the pointer to the node.