Junção de duas BSTs arbitrárias: Difference between revisions
From Wiki**3
No edit summary |
|||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
As árvores não estão relacionadas. <code>[[Inserção na Raiz | As árvores não estão relacionadas. <code>[[Inserção numa BST#Inserção na Raiz|insertT]]</code> é o algoritmo para inserção de elementos na raiz de uma BST. | ||
link STjoin(link a, link b) { | link '''STjoin'''(link a, link b) { | ||
if (a == z) return b; | if (a == z) return b; | ||
if (b == z) return a; | if (b == z) return a; | ||
b = insertT(b, a->item); | b = '''insertT'''(b, a->item); | ||
b->l = STjoin(a->l, b->l); | b->l = '''STjoin'''(a->l, b->l); | ||
b->r = STjoin(a->r, b->r); | b->r = '''STjoin'''(a->r, b->r); | ||
free(a); | free(a); | ||
return b; | return b; | ||
} | } | ||
Latest revision as of 08:38, 12 November 2008
As árvores não estão relacionadas. insertT é o algoritmo para inserção de elementos na raiz de uma BST.
link STjoin(link a, link b) {
if (a == z) return b;
if (b == z) return a;
b = insertT(b, a->item);
b->l = STjoin(a->l, b->l);
b->r = STjoin(a->r, b->r);
free(a);
return b;
}