well i don't know what i should have....i can just traverse it but without printing out at every time i increment cur i won't have a list function!!!
i thought that:
next = (node *)(cur->link ^ (unsigned long) prv);
was all i needed to make next pointer point to the next node!!
and then
prv = cur;
is just incrementing the prv pointer to where cur was...
then increments cur:
cur = next;
so what i am asking is how could i make the next pointer actually increment to the next node that is actually in the list???
should i do this???
next = (node *)(next->link ^ (unsigned long) cur);

