Edición de «AED2 resumen 2C-17»
De Cuba-Wiki
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 3: | Línea 3: | ||
=== a === | === a === | ||
duplicar: secu(α) → secu(α) | duplicar: secu(α)→secu(α) | ||
duplicar(s) ≡ if vacía?(s) then ⟨⟩ else prim(s) • prim(s) • duplicar(fin(s)) fi | duplicar(s)≡if vacía?(s) then ⟨⟩ else prim(s)•prim(s)•duplicar(fin(s)) fi | ||
=== b === | === b === | ||
Línea 11: | Línea 11: | ||
•≤•: secu(α) x secu(α) → bool | •≤•: secu(α) x secu(α) → bool | ||
s ≤ t ≡ if ¬(vacía?(s) ∨ vacía?(t)) then prim(s) < prim(t) ∨ (prim(s) = prim(t) ∧ fin(s) ≤ fin(t)) else vacía?(s) fi | s ≤ t ≡ if ¬(vacía?(s) ∨ vacía?(t)) then prim(s) < prim(t) ∨ (prim(s)=prim(t) ∧ fin(s)≤fin(t)) else vacía?(s) fi | ||
=== c === | === c === | ||
Línea 183: | Línea 183: | ||
acotado?(nil, k) ≡ true | acotado?(nil, k) ≡ true | ||
// Recibo el arbol ternario como sus partes separadas | // Recibo el arbol ternario como sus partes separadas | ||
acotado?(tern(i,m,d,r), k) ≡ if cantNodos(i · m · d · <>) ≤ k then | acotado?(tern(i,m,d,r), k) ≡ if cantNodos(i · m · d · <>) ≤ k then | ||
Línea 213: | Línea 213: | ||
=== b === | === b === | ||
cantHojas: rosetree(α) → nat | |||
cantHojas(r) ≡ if esHoja?(r) then 1 else sumarHojas(hijos(r)) fi | |||
esHoja?: rosetree(α) → bool | |||
esHoja?(r) ≡ vacía?(hijos(r)) | |||
sumarHojas: secu(rosetree(α)) → nat | |||
sumarHojas(s) ≡ if vacía?(s) then 0 else cantHojas(prim(s)) + sumarHojas(fin(s)) fi | |||
=== c === | === c === | ||
podar: rosetree(α) a → rosetree(α) {¬esHoja?(a)} | |||
podar(r) ≡ rose(raíz(r),podadora(hijos(r))) | |||
podadora: secu(rosetree(α)) → secu(rosetree(α)) | |||
podadora(s) ≡ if vacía?(s) then s else if esHoja?(prim(s)) then podadora(fin(s)) else podar(prim(s)) • podadora(fin(s)) fi fi | |||
=== d === | === d === | ||
obtenerRamas: rosetree(α) → secu(secu((α)) | |||
obtenerRamas(r) ≡ if esHoja?(r) then (raíz(r) • ⟨⟩) • ⟨⟩ else if long(hijos(r)) = 1 then insertarTodos(raíz(r),obtenerRamas(prim(hijos(r)))) else insertarTodos(raíz(r),obtenerRamas(prim(hijos(r)))) & obtenerRamas(rose(raíz(r),fin(hijos(r)))) fi fi | |||
insertarTodos: α x secu(secu(α)) → secu(secu(α)) | |||
insertarTodos(a,s) ≡ if vacía(s) then ⟨⟩ else (a • prim(s)) • insertarTodos(a,fin(s)) fi | |||
=== e === | === e === |