- Jun 16, 2000
- 30,213
- 12
- 81
You know you're bored when its 7am, you've been up all night, and you start looking through your code from your CS final project from the previous year.
void Mailbox::swap_node_(LinkedList<Mail> *Mail1, LinkedList<Mail> *Mail2)
{
LinkedList<Mail> *ptr1 = Mail1->get_previous_node();
LinkedList<Mail> *ptr2 = Mail2->get_previous_node();
if(ptr1 != Mail2 && ptr2 != Mail1)
{
if(ptr1 != NULL)
ptr1->link(Mail2);
else
Mail2->unlink();
if(ptr2 != NULL)
ptr2->link(Mail1);
else
Mail1->unlink();
ptr1 = Mail1->get_next_node();
Mail1->link(Mail2->get_next_node());
Mail2->link(ptr1);
}
else
{
if(ptr1 == Mail2)
{
Mail2->link(Mail1->get_next_node());
if(ptr2 != NULL)
ptr2->link(Mail1);
else
Mail1->unlink();
Mail1->link(Mail2);
}
else
{
Mail1->link(Mail2->get_next_node());
if(ptr1 != NULL)
ptr1->link(Mail2);
else
Mail2->unlink();
Mail2->link(Mail1);
}
}
}
man that was a bitch to code.
void Mailbox::swap_node_(LinkedList<Mail> *Mail1, LinkedList<Mail> *Mail2)
{
LinkedList<Mail> *ptr1 = Mail1->get_previous_node();
LinkedList<Mail> *ptr2 = Mail2->get_previous_node();
if(ptr1 != Mail2 && ptr2 != Mail1)
{
if(ptr1 != NULL)
ptr1->link(Mail2);
else
Mail2->unlink();
if(ptr2 != NULL)
ptr2->link(Mail1);
else
Mail1->unlink();
ptr1 = Mail1->get_next_node();
Mail1->link(Mail2->get_next_node());
Mail2->link(ptr1);
}
else
{
if(ptr1 == Mail2)
{
Mail2->link(Mail1->get_next_node());
if(ptr2 != NULL)
ptr2->link(Mail1);
else
Mail1->unlink();
Mail1->link(Mail2);
}
else
{
Mail1->link(Mail2->get_next_node());
if(ptr1 != NULL)
ptr1->link(Mail2);
else
Mail2->unlink();
Mail2->link(Mail1);
}
}
}
man that was a bitch to code.
