Si dice che due alberi ordinati T 'e T' 'sono isomorfi se si verifica una delle seguenti condizioni:
◦ sia T 'sia T' 'consistono di un singolo nodo
◦ sia T 'sia T' 'hanno lo stesso numero k di sottoalberi, e l'ith sotto-albero di T' è isomorfo al sotto-albero di T '', per i = 1, 2, ..., k.
Ho tentato di trovare il seguente algoritmo per gli alberi binari , tuttavia la domanda non dice nulla sull'albero binario. Che tipo di algoritmo può determinare se due alberi non binari sono isomorfi o no?
bool isomorphic(node p, node r)
if (p = null & r = null) return true
if (p = null || r = null) return false //they don’t have the same number of subtrees
else return (isomorphic(p->leftchild, r->leftchild) && isomorphic(p->rightchild, r->rightchild) || (isomorphic(p->leftchild, r->rightchild) && isomorphic(p->rightchild, r->leftchild))