Aufgabe zu Mergesort mit Liste
Passen Sie die Programme 8.6 und 8.7 so, dass sie mit STL list<int> oder das Java Äquivalente arbeiten, und nicht mit dem link Typ vom Buch.
Programm 8.6
link merge(link a, link b)
{ node dummy(0); link head = &dummy, c = head;
while ((a != 0) && (b != 0))
if (a->item < b->item)
{ c->next = a; c = a; a = a->next; }
else
{ c->next = b; c = b; b = b->next; }
c->next = (a == 0) ? b : a;
return head->next;
}
Programm 8.7
link mergesort(link c)
{
if (c == 0 || c->next == 0) return c;
link a = c, b = c->next;
while ((b != 0) && (b->next != 0))
{ c = c->next; b = b->next->next; }
b = c->next; c->next = 0;
return merge(mergesort(a), mergesort(b));
}
Testen Sie Ihr Programm und laden Sie es mit einem Screen Shot auf.