R
RishiD
Hi,
Trying to shuffle a linked list of cards around. I know not the ideal
structure to use, but it is what my professor wants. I wrote all the
code and the logic makes sense, but for some reason when my random
integer is 0, it links the current node to itself and just breaks the
entire linked list.
Thanks for any help,
Rishi
void shuffle()
{
node<card> *curr = NULL, *prev = NULL;
int myIndex;
randomNumber rnd;
// move 50 cards around
for (int i = 0; i < 50; i++)
{
long rndNum = rnd.random(52);
myIndex = 0;
curr = front;
// scan until index reaches rndNum or reach end of list
while (curr != NULL && myIndex != rndNum)
{
prev = curr;
curr = curr->next;
myIndex++;
}
// if prev == null, that means we are shuffling first node so just
dont do anything
if (prev != NULL)
{
cout << myIndex << " - curr " << curr->nodeValue.getValue() << "
prev " << prev->nodeValue.getValue() << endl;
prev->next = curr->next;
curr->next = front;
front = curr;
}
}
}
Trying to shuffle a linked list of cards around. I know not the ideal
structure to use, but it is what my professor wants. I wrote all the
code and the logic makes sense, but for some reason when my random
integer is 0, it links the current node to itself and just breaks the
entire linked list.
Thanks for any help,
Rishi
void shuffle()
{
node<card> *curr = NULL, *prev = NULL;
int myIndex;
randomNumber rnd;
// move 50 cards around
for (int i = 0; i < 50; i++)
{
long rndNum = rnd.random(52);
myIndex = 0;
curr = front;
// scan until index reaches rndNum or reach end of list
while (curr != NULL && myIndex != rndNum)
{
prev = curr;
curr = curr->next;
myIndex++;
}
// if prev == null, that means we are shuffling first node so just
dont do anything
if (prev != NULL)
{
cout << myIndex << " - curr " << curr->nodeValue.getValue() << "
prev " << prev->nodeValue.getValue() << endl;
prev->next = curr->next;
curr->next = front;
front = curr;
}
}
}