Ejemplos de TAD (tipos simples)

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Ejemplos de TAD (tipos simples)"

Transcripción

1 ESPECIFICACIÓN BOOLEANOS TAD booleano Ejemplos de TAD (tipos simples) T : booleano { valor cierto } F : booleano { valor falso } : booleano booleano : booleano, booleano booleano : booleano, booleano booleano x, y : booleano T == F F == T x y == y x { conmutatividad } x y == y x F x == F ; T T == T { tablas de verdad } T x == T ; F F == F ESPECIFICACIÓN NATURALES1 (BOOLEANOS) TAD natural 0 : natural suc : natural natural { siguiente número natural } +, * : natural, natural natural = : natural, natural booleano x, y : natural x + 0 == x { axiomas de Peano } x * 0 == 0 x + suc(y) == suc(x + y) x * suc(y) == (x * y) + x 0 = 0 == T 0 = suc(x) == F ; suc(x) = 0 == F suc(x) = suc(y) == x = y UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 1

2 ESPECIFICACIÓN NATURALES2 (NATURALES1) : natural, natural booleano >,, < : natural, natural booleano x, y : natural 0 x == T suc(x) 0 == F suc(x) suc(y) == x y x > y == (x y) x y == (x > y) (x = y) x < y == (x y) ESPECIFICACIÓN NATURALES3 (NATURALES2) - : natural, natural natural div : natural, natural natural { Cociente } mod : natural, natural natural { Resto } mcd : natural, natural natural { Máximo común divisor } x, y : natural x - y x y x div y y 0 x mod y y 0 x - 0 == x suc(x) - suc(y) == x - y (x < y) x div y == 0 (x y) x div y == (x-y) div y (x < y) x mod y == x (x y) x mod y == (x-y) mod y mcd(x, 0) == x mcd(x, x) == x mcd(x, y) == mcd(y, x) mcd(x, y) == mcd(y, x mod y) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 2

3 TADs de Parámetros ESPECIFICACIÓN EQUIVALENCIA (BOOLEANOS) TAD equivalente = : equivalente, equivalente booleano : equivalente, equivalente booleano x, y, z : equivalente x = x == T { Reflexividad } x = y == y = x { Simetría } (x = y) (y = z) == x = z { Transitividad } x y == (x = y) ESPECIFICACIÓN COMPARABLE (EQUIVALENCIA) TAD comparable equivalente : comparable, comparable booleano, <, > : comparable, comparable booleano x, y, z : comparable x x == T { Reflexividad } (x y) (y x) == x = y { Antisimetría } (x y) (y z) == x z { Transitividad } x > y == (x y) x y == (x > y) (x = y) x < y == (x y) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 3

4 TAD Vector ESPECIFICACIÓN VECTOR (NATURALES1, COMPARABLE) TAD vector [indice comparable, elemento] crear : natural vector { Crea un vector no asignado tamaño : vector natural con índices 1..n } asignado : vector, indice booleano asignar : vector, indice, elemento vector valor : vector, indice elemento v : vector ; n : natural ; i, j : indice ; x, y : elemento [P1] asignar( v, i, x ) 1 i tamaño(v) [P2] valor( v, i ) (1 i tamaño(v)) asignado( v, i ) [E1] asignar( asignar(v, i, x), i, y ) == asignar(v, i, y) [E2] ( i j ) asignar( asignar(v, i, x), j, y ) == asignar( asignar(v, j, y), i, x ) [E3] valor( asignar(v, i, x), i ) == x [E4] ( i j ) valor( asignar(v, i, x), j ) == valor(v, j) [E5] asignado( asignar(v, i, x), i ) == T [E6] ( i j ) asignado( asignar(v, i, x), j ) == asignado(v, j) [E7] asignado( crear(n), i ) == F [E8] tamaño( crear(n) ) == n [E9] tamaño( asignar(v,i,x) ) == tamaño(v) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 4

5 TAD Colección y Conjunto ESPECIFICACION COLECCION (NATURALES1, EQUIVALENCIA) TAD coleccion[elemento equivalente] crear_coleccion : coleccion { colección vacía } añadir : coleccion, elemento coleccion { añadir elemento } quitar : coleccion, elemento coleccion { quitar todos los elementos iguales } cuantos_hay : coleccion, elemento natural { contar elementos iguales } c : colección x, y : elemento quitar( crear_coleccion, x ) == crear_coleccion quitar( añadir(c, x), x ) == quitar(c, x) (x y) quitar( añadir(c, x), y ) == añadir( quitar(c, y), x ) cuantos_hay( crear_coleccion, x ) == 0 cuantos_hay( añadir(c, x), x ) == 1 + cuantos_hay(c, x) (x y) cuantos_hay( añadir(c, x), y ) == cuantos_hay(c, x) ESPECIFICACIÓN CONJUNTO (EQUIVALENCIA) TAD conjunto[elemento equivalente] crear_conjunto : conjunto { conjunto vacío } añadir : conjunto, elemento conjunto { incluir elemento } quitar : conjunto, elemento conjunto { excluir elemento } pertenece : conjunto, elemento booleano { pertenencia de elemento } c : conjunto x, y : elemento quitar( crear_conjunto, x ) == crear_conjunto quitar( añadir(c, x), x ) == quitar(c, x) (x y) quitar( añadir(c, x), y ) == añadir( quitar(c, y), x ) pertenece( crear_conjunto, x ) == F pertenece( añadir(c, x), x ) == T (x y) pertenece( añadir(c, x), y ) == pertenece(c, x) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 5

6 TAD Lista (Especificación básica Bicola) ESPECIFICACIÓN LISTA_BASICA (NATURALES1) TAD lista[elemento] [ ] : lista { lista vacía } [ ] : elemento lista { lista unitaria } ++ : lista, lista lista { concatenar listas } >> : elemento, lista lista { insertar al principio } << : lista, elemento lista { insertar al final } tamaño : lista natural { número de elementos } esta_vacía : lista booleano primero, ultimo : lista elemento { acceso } quita_primero, quita_ultimo : lista lista { borrado } l, l1, l2 : lista; x : elemento primero( l ) esta_vacía( l ) ultimo( l ) esta_vacía( l ) quita_primero( l ) esta_vacía( l ) quita_ultimo( l ) esta_vacía( l ) [ ] ++ l == l ( x >> l1 ) ++ l2 == x >> ( l1 ++ l2 ) l << x == l ++ [ x ] [ x ] == x >> [ ] tamaño( [ ] ) == 0 tamaño( x >> l ) == 1 + tamaño( l ) primero( x >> l ) == x quita_primero( x >> l ) == l ultimo( x >> [ ] ) == x ultimo( x >> (y >> l) ) == ultimo( y >> l ) quita_ultimo( x >> [ ] ) == [ ] quita_ultimo( x >> (y >> l) ) == x >> quita_ultimo( y >> l ) esta_vacía( [ ] ) == T esta_vacía( x >> l ) == F UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 6

7 TAD Lista (acceso por índice) ESPECIFICACIÓN LISTA_INDEXADA (LISTA_BASICA) TAD lista_ind[elemento] : lista_ind, natural elemento { acceso a elemento } insertar : lista_ind, natural, elemento lista_ind { insertar( l, i, x i == x } cambiar : lista_ind, natural, elemento lista_ind { cambiar( l, i, x i == x } quitar : lista_ind, natural lista_ind concatenar : lista_ind, lista_ind lista_ind l, l1, l2 : lista_ind ; x, y : elemento ; i : natural i 1 i tamaño( l ) insertar( l, x, i ) 1 i tamaño( l ) cambiar( l, x, i ) 1 i tamaño( l ) quitar( l, i ) 1 i tamaño( l ) ( x >> l 1 == x ( i > 1 ) ( x >> l i == ( i - 1 ) insertar( l, 1, x ) == x >> l ( i > 1 ) insertar( y >> l, i, x ) == y >> insertar( l, i - 1, x ) cambiar( y >> l, 1, x ) == x >> l ( i > 1 ) cambiar( y >> l, i, x ) == y >> cambiar( l, i - 1, x ) quitar( x >> l, 1 ) == l ( i > 1 ) quitar( x >> l, i ) == x >> quitar( l, i - 1 ) concatenar(l1, l2) == l1 ++ l2 UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 7

8 TAD Lista (acceso por cursor) ESPECIFICACIÓN LISTA_CURSOR (LISTA_BASICA) TAD lista_cur[elemento] crear_lc : lista_cur { lista-cursor vacía } : lista, lista lista_cur { una lista-cursor consta de dos lista basicas } fin_de_lista : lista_cur booleano { cursor fuera de la lista } actual : lista_cur elemento { acceso a elemento actual } ir_a_siguiente : lista_cur lista_cur { elemento actual pasa a ser el siguiente } ir_a_inicial : lista_cur lista_cur { elemento actual pasa a ser el primero } insertar : lista_cur, elemento lista_cur { inserta despues del actual y pasa al siguiente } cambiar : lista_cur, elemento lista_cur { cambia el elemento actual y pasa al siguiente } quitar : lista_cur lista_cur { borra el elemento actual y pasa al siguiente } concatenar : lista_cur, lista_cur lista_cur { une dos listas, una despues de la otra } l : lista_cur ; l1, l2 : lista ; x, y : elemento; actual( l ) fin_de_lista( l ) cambiar( l ) fin_de_lista( l ) quitar( l ) fin_de_lista( l ) crear_lc == [ ] [ ] fin_de_lista( l1 [ ] ) == T fin_de_lista( l1 (x >> l2) ) == F actual( l1 (x >> l2) ) == x ir_a_siguiente( l1 [ ] ) == l1 [ ] ir_a_siguiente( l1 (x >> l2) ) == (l1 << x) l2 ir_a_inicial( l1 l2 ) == [ ] (l1 ++ l2) insertar( l1 [ ], x ) == l1 [ x ] insertar( l1 (y >> l2), x ) == (l1 << y) (x >> l2) cambiar( l1 (y >> l2), x ) == (l1 << x) l2 quitar( l1 (x >> l2) ) == l1 l2 concatenar( l1 l2, l3 l4 ) == (l1 ++ l2) (l3 ++ l4) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 8

9 TAD Lista ordenada (acceso por índice) ESPECIFICACIÓN LISTA_ORDENADA (COMPARABLE) TAD lista_ord[elemcomp comparable] crear_lisord : lista_ord { crear lista vacía } tamaño : lista_ord natural { número de elementos : lista_ord, natural elemcomp { acceso a elemento } insertar : lista_ord, elemcomp lista_ord { insertar en orden } cambiar : lista_ord, natural, elemcomp lista_ord { cambiar elem. en posición } quitar : lista_ord, natural lista_ord { quitar elem. en posición } fusionar : lista_ord, lista_ord lista_ord OCULTO >> : elemcomp, lista_ord lista_ord { inserción al principio } l, l1, l2 : lista_ord ; x, y : elemcomp ; i : natural i 1 i tamaño( l ) insertar( l, x, i ) 1 i tamaño( l ) cambiar( l, x, i ) 1 i tamaño( l ) quitar( l, i ) 1 i tamaño( l ) tamaño( crear_lisord ) == 0 tamaño( x >> l ) == 1 + tamaño( l ) ( x >> l 1 == x ( i > 1 ) ( x >> l i == ( i - 1 ) quitar( x >> l, 1 ) == l ( i > 1 ) quitar( x >> l, i ) == x >> quitar( l, i - 1 ) cambiar( l, i, x ) == insertar( quitar( l, i ), x ) insertar( [ ], x ) == x >> [ ] (x < y) insertar( y >> l, x ) == x >> (y >> l) (x y) insertar( y >> l, x ) == y >> insertar(l, x) fusionar( l, [ ] ) == l fusionar( [ ], l ) == l (x y) fusionar( x >> l1, y >> l2 ) == x >> fusionar( l1, y >> l2 ) (x > y) fusionar( x >> l1, y >> l2 ) == y >> fusionar( x >> l1, l2 ) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 9

10 Operaciónes de búsqueda en listas ESPECIFICACIÓN BUSQLIS (LISTA_INDEXADA, LISTA_CURSOR, LISTA_ORDENADA) { Aunque tienen el mismo nombre son operaciones distintas porque se aplican a TADs diferentes (sus parámetros son de tipos distintos). La búsqueda en listas indexadas y ordenadas devuelven la posición del primer elemento igual o un indice fuera de rango (mayor que el tamaño de la lista) si no existe ningún elemento igual. La búsqueda en listas basadas en cursor situa el cursor sobre el primer elemento igual o sobre el final de la lista si no existe. } buscar : lista_ind, elemento natural buscar : lista_cur, elemento lista_cur buscar : lista_ord, elemcomp natural l1, l2 : lista ; li : lista_ind ; lo : lista_ord ; x, y : elemento; u,v : elemcomp { --- Lista indexada --- } buscar( [ ], x ) == 1 buscar( x >> li, x ) == 1 (x y) buscar( y >> li, x ) == 1+ buscar( li, x ) { --- Lista basada en cursor --- } buscar( l1 [ ], x ) == l1 [ ] buscar( l1 (x >> l2), x ) == l1 (x >> l2) (x y) buscar( l1 (x >> l2), y ) == buscar( (l1 << x) l2, y) { --- Lista ordenada --- } buscar( crear_lisord, u ) == 1 buscar( u >> lo, u ) == 1 (u v) buscar( v >> lo, u ) == 1+ buscar( lo, u ) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 10

11 TAD Pila y Cola ESPECIFICACIÓN PILA Y COLA (BOOLEANOS) TAD pila[elemento] TAD cola[elemento] { --- Operaciones de pila --- } crear_pila : pila vacía : pila booleano añadir : pila, elemento pila cima : pila elemento { Último elemento añadido } quitar : pila pila { Elimina elemento cima } { --- Operaciones de cola --- } crear_cola : cola vacía : cola booleano añadir : cola, elemento cola cabeza : cola elemento { Primer elemento añadido } quitar : cola cola { Elimina elemento cabeza } p : pila; c : cola ; x : elemento cima(p) vacía(p) quitar(p) vacía(p) cabeza(c) vacía(c) quitar(c) vacía(c) { --- Pila --- } vacía( crear_pila ) == T vacía( añadir(p, x) ) == F cima( añadir(p, x) ) == x quitar( añadir(p, x) ) == p { --- Cola --- } vacía( crear_cola ) == T vacía( añadir(c, x) ) == F cabeza( añadir( crear_cola, x ) ) == x vacía(c) cabeza( añadir(c, x) ) == cabeza(c) quitar( añadir( crear_cola, x ) ) == crear_cola vacía(c) quitar( añadir(c, x) ) == añadir( quitar(c), x ) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 11

12 TAD Cola de prioridad ESPECIFICACIÓN COLA PRIORIDAD (COMPARABLE) TAD colapri[elemcomp comparable] crear_cp : colapri { Crear cola vacía } vacía : colapri booleano minimo : colapri elemcomp { Elemento mínimo } añadir : colapri, elemcomp colapri { Añadir elemento } quitar : colapri colapri { Elimina el elemento mínimo } { --- Operaciones auxiliares --- } min_aux : cola_pri, elemcomp colapri { Obtención del valor mínimo } quitar_aux : cola_pri, elemcomp colapri { Quitar elemento igual } : elemcomp, cola_pri booleano { Pertenencia } c : colapri ; x, y: elemento minimo(c) vacía(c) quitar(c) vacía(c) cambiar(c, x) vacía(c) min_aux(c, x) vacía(c) quitar_aux(c, x) x c vacía( crear_cp ) == T vacía( añadir(c, x) ) == F minimo( añadir(c, x) ) == min_aux(c, x) min_aux( crear_cp, x ) == x (x < y) min_aux( añadir(c, x), y ) == min_aux(c, x) (x y) min_aux( añadir(c, x), y ) == min_aux(c, y) quitar(c) == quitar_aux( c, minimo(c) ) quitar_aux( añadir(c, x), x ) == c (x y) quitar_aux( añadir(c, y), x ) == añadir( quitar_aux(c, x), y ) x crear_cp == F x añadir(c, x) == T (x y) x añadir(c, y) == x c UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 12

13 TAD Tabla (un elemento por clave) ESPECIFICACION TABLA (EQUIVALENCIA) TAD tabla[clave equivalente, elemento] crear_tabla : tabla { creación de una tabla vacía } añadir : tabla, clave, elemento : tabla { inserción y modificación } quitar : tabla, clave tabla { borrado de clave } presente : tabla, clave booleano { existencia de par clave-elemento } valor : tabla, clave elemento { acceso a elemento } t : tabla ; k, k1, k2 : clave ; v : elemento valor(t, k) presente(t, k) quitar( crear_tabla, k ) == crear_tabla quitar( añadir(t, k, v), k ) == quitar( t, k ) ( k1 k2 ) quitar( añadir( t, k1, v ), k2 ) == añadir( quitar( t, k2 ), k1, v ) presente( crear_tabla, k ) == F presente( añadir(t, k, v), k ) == T ( k1 k2 ) presente( añadir(t, k1, v), k2 ) == presente(t, k2) { Si existen varias operaciones de añadir sobre la misma clave sólo se tiene en cuenta la más reciente } valor( añadir(t, k, v), k ) == v ( k1 k2 ) valor( añadir(t, k1, v), k2 ) == valor(t, k2) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 13

14 TAD Diccionario (varios elementos por clave) ESPECIFICACIÓN DICCIONARIO (LISTA_BASICA) TAD diccionario[clave equivalente, elemento equivalente] crear_dic : diccionario { creación de un diccionario vacío } añadir : diccionario, clave, elemento diccionario { inserción } borrar : diccionario, clave diccionario { borrado de todos los elementos asociados a la misma clave } quitar : diccionario, clave, elemento diccionario { borrado de elemento concreto } valor : diccionario, clave lista[elemento] { lista de valores asoc. a clave } d : diccionario ; k, k1, k2 : clave ; v, v1, v2 : elemento borrar( crear_dic, k ) == crear_dic borrar( añadir(d, k, v), k ) == borrar(d, k) ( k1 k2 ) borrar( añadir(d, k1, v), k2 ) == añadir( borrar(d, k2), k1, v ) quitar(crear_dic, k, v) == crear_dic ( k1 k2 ) quitar( añadir(d, k1, v1), k2, v2 ) == añadir( quitar(d, k2, v2), k1, v1 ) quitar( añadir(d, k, v), k, v ) == quitar(d, k, v) ( v1 v2 ) quitar( añadir(d, k, v1 ), k, v2 ) == añadir( quitar(d, k, v2), k, v1 ) valor( crear_dic, k ) == [ ] valor( añadir(d, k, v), k ) == v >> valor(d, k) ( k1 k2 ) valor( añadir(d, k1, v), k2 ) == valor(d, k2) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 14

15 TAD Arbol ESPECIFICACION ARBOL (LISTA_INDEXADA) TAD arbol[nodo equivalente] : nodo, lista_ind[arbol] arbol { creación de un arbol } raiz : arbol nodo { nodo raiz de un arbol } subarbol : arbol, natural arbol { subarbol n-ésimo de un arbol } padre : arbol, nodo nodo { nodo padre de un nodo del arbol } hijos : arbol, nodo lista[nodo] { nodos hijos de un nodo del arbol }, : nodo, arbol booleano { pertenencia de un nodo a un arbol } a : arbol ; x, y : nodo ; i : natural ; l, l1, l2 : lista_ind[arbol] subarbol( x l, i ) 1 i tamaño(l) padre(a, x) ( x raiz(a) ) ( x a ) hijos(a, x) x a raiz( x l ) == x subarbol( x l, i ) == i x (x l) == T ( x y ) x (y [ ]) == F ( x y ) x (y (a >> l) ) == ( x a ) ( x (y l) ) x a == (x a) padre( y ((x l1 ) >> l2), x ) == y ( x a ) padre( y (a >> l), x ) == padre( a, x ) ( x a ) padre( y (a >> l), x ) == padre( y l, x ) hijos( x [ ], x ) == [ ] hijos( x (a >> l), x ) == raiz(a) >> hijos( x l, x ) ( x y ) ( x a ) hijos( y (a >> l), x ) == hijos( a, x ) ( x y ) ( x a ) hijos( y (a >> l), x ) == hijos( y l, x ) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 15

16 Operaciones sobre árboles ESPECIFICACIÓN ARBOPER (ARBOL) altura : arbol natural altura_nodo : arbol, nodo natural profundidad : arbol, nodo natural preorden, postorden, inorden : arbol lista_ind[nodo] { --- Operaciones auxiliares para recorridos --- } lista_preorden, lista_postorden, lista_inorden : lista_ind[arbol] lista_ind[nodo] a : arbol ; x, y : nodo ; l : lista_ind[arbol] altura_nodo( a, x ) x a profundidad( a, x ) x a altura( x [ ] ) == 0 altura( x (a >> l) ) == max( 1+altura(a), altura(x l) ) altura_nodo( x l, x ) == altura( x l ) ( x y ) ( x a ) altura_nodo( y (a >> l), x ) == altura_nodo( a, x ) ( x y ) ( x a ) altura_nodo( y (a >> l), x ) == altura_nodo( y l, x ) profundidad( x l, x ) == 0 ( x y ) ( x a ) profundidad( y (a >> l), x ) == 1+profundidad( a, x ) ( x y ) ( x a ) profundidad( y (a >> l), x ) == profundidad( y l, x ) { --- Recorridos --- } preorden( x [ ] ) == [x] preorden( x l ) == x >> lista_preorden(l) lista_preorden( [ ] ) == [ ] lista_preorden( a >> l ) == preorden(a) ++ lista_preorden(l) postorden( x [ ] ) == [x] postorden( x l ) == lista_postorden(l) << x lista_postorden( [ ] ) == [ ] lista_postorden( a >> l ) == postorden(a) ++ lista_postorden(l) inorden( x [ ] ) == [x] inorden( x [a] ) == inorden(a) << x inorden( x (a >> l) ) == inorden(a) ++ [x] ++ lista_inorden(l) lista_inorden( [ ] ) == [ ] lista_inorden( a >> l ) == inorden(a) ++ lista_inorden(l) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 16

17 TAD Directorio ESPECIFICACION DIRECTORIO (EQUIVALENCIA, LISTA_BASICA) TAD directorio[nodo equivalente] { El TAD directorio es el análogo de un sistema de ficheros, y el TAD nodo representa el concepto de subdirectorio (un fichero sería un subdirectorio vacío). La operación insertar es el análogo de mkdir, quitar de rmdir, subdirs devuelve la lista de nodos hijos de otro nodo (análogo de dir ). } crear_dir : nodo directorio { crear directorio con nodo raiz } raiz : directorio nodo { nodo raiz del directorio } insertar : directorio, nodo, nodo directorio { inserta 2º nodo como hijo del 1º } quitar : directorio, nodo directorio { elimina el nodo y sus descendientes } quitar_aux : directorio, nodo directorio { elimina sólo el nodo (op. auxiliar) } quitar_lista : directorio, lista[nodo] directorio { elimina nodos de la lista (auxiliar) } subdirs : directorio, nodo lista[nodo] { lista de hijos del nodo } : directorio, nodo booleano { pertenencia de un nodo al dir. } d : directorio ; r, p, h, x : nodo insertar( d, x, y ) (x d) (y d) { No se permiten nodos duplicados } quitar( d, x ) x raiz(d) { No se puede borrar el raiz } quitar_aux( d, x ) x raiz(d) raiz( crear_dir(r) ) == r raiz( insertar(d, p, h) ) == raiz(d) r crear_dir(r) == T (h r) h crear_dir(r) == F h insertar(d, p, h) == T (x h) x insertar(d, p, h) == x d subdirs( crear_dir(r), p ) == [ ] subdirs( insertar( d, p, h ), p ) == h >> subdirs( d, p ) (x p) subdirs( insertar( d, p, h ), x ) == subdirs( d, x ) quitar(d, p) = quitar_lista( quitar_aux(d, p), subdirs(d, p) ) quitar_aux( crear_dir(r), h ) == crear_dir(r) quitar_aux( insertar( d, p, h ), h ) == d (x h) quitar_aux( insertar( d, p, h ), x ) == insertar( quitar_aux( d, x ), p, h ) quitar_lista(d, [ ]) == d quitar_lista( d, (x >> l) ) == quitar_lista( quitar(d, x), l ) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 17

18 TAD Grafo (malla, red) ESPECIFICACION GRAFO (LISTA_BASICA, CONJUNTO) TAD grafo[nodo equivalente] crear_grafo : grafo { grafo vacío } insertar : grafo, nodo, nodo grafo { inserta arco en el grafo } quitar : grafo, nodo, nodo grafo { elimina arco del grafo } hay_arco : grado, nodo, nodo booleano { existencia de arco } vecinos : grafo, nodo lista[nodo] { nodos vecinos } nodos : grafo conjunto[nodo] { nodos del grafo } g : grafo ; x, y, a, b : nodo insertar(g, x, y) hay_arco(g, x, y) { no se permiten arcos duplicados } hay_arco( crear_grafo, x, y ) == F hay_arco( insertar(g, x, y), x, y ) == T hay_arco( insertar(g, y, x), x, y ) == T (x a) (x b) hay_arco( insertar(g, a, b), x, y ) == hay_arco(g, x, y) quitar( crear_grafo, x, y ) == crear_grafo quitar( insertar(g, x, y), x, y ) == g quitar( insertar(g, y, x), x, y ) == g (x a) (x b) quitar( insertar(g, a, b), x, y ) == insertar( quitar(g, x, y), a, b ) vecinos( crear_grafo, x ) == [ ] vecinos( insertar(g, x, y), x ) == y >> vecinos(g, x) vecinos( insertar(g, y, x), x ) == y >> vecinos(g, x) (x a) (x b) vecinos( insertar(g, a, b), x ) == vecinos(g, x) nodos( crear_grafo ) == crear_conjunto nodos( insertar(g, x, y) ) == añadir( añadir( nodos(g), x ), y ) UNIVERSIDAD DE VALLADOLID - DPTO. DE INFORMÁTICA PÁG. 18

TAD Lineales: Pila, Cola y Lista

TAD Lineales: Pila, Cola y Lista TAD Lineales: Pila, Cola y Lista Objetivos! Dar a conocer los TAD lineales pila, cola y lista! Presentar la especificación de cada uno de los TAD! Discutir implementaciones alternativas para cada uno de

Más detalles

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Árboles Binarios Ordenados Árboles AVL

Árboles Binarios Ordenados Árboles AVL Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Recordatorio... Se acerca la fecha de la primera entrega

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

Más detalles

Capítulo 6. ÁRBOLES.

Capítulo 6. ÁRBOLES. 67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento

Más detalles

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Árbol binario Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Un Árbol Binario es un conjunto finito de Elementos, de nombre Nodos de forma que: El Árbol Binario

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos. UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.

Más detalles

2. Desarrolla una especificación informal genérica para el TAD árbol binario. Incluir operaciones para crear y modificar el árbol.

2. Desarrolla una especificación informal genérica para el TAD árbol binario. Incluir operaciones para crear y modificar el árbol. 1. Escribe una especificación informal para los distintos métodos de ordenación que conozcas. La especificación debe ser genérica, es decir trabajar con elementos de cualquier tipo. En qué se diferencia

Más detalles

Tema IV Programación lógica con estructuras

Tema IV Programación lógica con estructuras Tema IV Programación lógica con estructuras Programación Lógica - E.T.S.I. Informática - Málaga 1 Términos La estructura de datos básica en PROLOG es el término. Los términos se clasifican en : variables

Más detalles

MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda<T>

MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda<T> MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda Descripción General El presente Manual de usuario pretende describir en detalle el conjunto de funcionalidades de la Aplicación desarrollada para la

Más detalles

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24 Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...

Más detalles

3. ESTRUCTURAS DE DATOS NO LINEALES

3. ESTRUCTURAS DE DATOS NO LINEALES 3. ESTRUCTURAS DE DATOS NO LINEALES 3.1 Conjuntos 3.2 Árboles 3.3 Grafos 1 3.1 Conjuntos Índice Introducción Especificación del TAD TipoConjunto Implementaciones del TAD TipoConjunto Programación usando

Más detalles

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas: Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)

Más detalles

Curso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2

Curso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2 Curso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2 1 El problema Desserts es un local de hostelería que sirve toda clase de postres.

Más detalles

ÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES 2-3-4. ÁRBOLES

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Restricciones. Inteligencia Artificial. Ingeniería Superior en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani

Restricciones. Inteligencia Artificial. Ingeniería Superior en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani Restricciones Ingeniería Superior en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani 1 Tema 2: Agentes basados en Búsqueda Resumen: 2. Agentes basados en búsqueda

Más detalles

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

Introducción a los árboles. Lección 11

Introducción a los árboles. Lección 11 Introducción a los árboles Lección 11 Árbol: Conjunto de elementos de un mismo tipo, denominados nodos, que pueden representarse en un grafo no orientado, conexo y acíclico, en el que existe un vértice

Más detalles

Estructuras de Datos Abstractas en Lenguaje Java

Estructuras de Datos Abstractas en Lenguaje Java Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Industrial Estructuras de Datos Abstractas en Lenguaje Java Listas Enlazadas, Colas, Pilas y Árboles Binarios Creado por

Más detalles

Algoritmos y Programación II Curso 2006

Algoritmos y Programación II Curso 2006 Arboles: Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz. Los nodos mantienen entre ellos una relación que define una estructura jerárquica

Más detalles

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2004/2005 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004 Árboles Notas de Clase Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia 21 de febrero de 2004 Índice 1. Definición 1 2. Términos Básicos 2

Más detalles

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria ESTRUCTURA DE DATOS ABB Arboles de Búsqueda Binaria ÁRBOLES BINARIOS Hasta ahora nos hemos dedicado a estudiar TAD que de una u otra forma eran de naturaleza lineal, o unidimensional. En los tipos abstractos

Más detalles

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. DEFINICIÓN Un grafo consta de un conjunto de nodos(o vértices) y un conjunto de arcos (o aristas). Cada arco de un grafo se especifica mediante un par de nodos. Denotemos

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no

Más detalles

Algoritmos y estructuras de datos

Algoritmos y estructuras de datos Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas

Más detalles

Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios

Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios Temario 5.1 Árboles Binarios 5.2 Árboles n-arios Especificación Utilización Representación Enlazada 5.3 Árboles Binarios de Búsqueda 5.4 Árboles Parcialmente Ordenados 1 Árbol n-ario: O bien es el conjunto

Más detalles

Árboles de Búsqueda Binaria. Agustín J. González ELO-320: Estructura de Datos y Algoritmos

Árboles de Búsqueda Binaria. Agustín J. González ELO-320: Estructura de Datos y Algoritmos Árboles de Búsqueda Binaria Agustín J. González ELO-320: Estructura de Datos y Algoritmos 1 Introducción Los árboles de búsqueda son estructuras de datos que soportan las siguientes operaciones de conjuntos

Más detalles

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios

Más detalles

4 Introduccin a los tipos abstractos de datos o Definiciones o TAD String o Concepto de contenedor o Colecciones e Iteradores o Relaciones entre elementos o TAD's contenedores Estructuras de datos, curso

Más detalles

Caso de Uso. Descripción. Prioridad. Actores. Precondiciones. Flujo Básico de Datos. Postcondiciones CREAR ASIGNATURA

Caso de Uso. Descripción. Prioridad. Actores. Precondiciones. Flujo Básico de Datos. Postcondiciones CREAR ASIGNATURA 10.2.1.2 Gestión de asignaturas En el modelo de datos actual, una asignatura tiene que pertenecer a al menos una titulación y tiene que haber al menos un profesor que la imparte. Probablemente habrá que

Más detalles

Resumen de los tipos abstractos de datos

Resumen de los tipos abstractos de datos Resumen de los tipos abstractos de datos José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e I.A. Universidad de Sevilla 18 de agosto de 2015 Resumen Es este documento

Más detalles

Arboles Binarios de Búsqueda

Arboles Binarios de Búsqueda Arboles Binarios de Búsqueda Algoritmos y Estructuras de Datos Departamento de Electricidad y Electrónica (UPV/EHU) Arboles Binarios de Búsqueda p.1/52 Arboles Binarios Arbol binario: árbol ordenado de

Más detalles

Estructura de Datos. Índice

Estructura de Datos. Índice TEMA 5. ÁRBOLES (I) 1 Índice 1. Concepto de árbol 2. Árboles binarios 1. Especificación informal del TAD árbol binario 2. Implementación del TAD árbol binario 3. Recorrido de un árbol binario 4. Árboles

Más detalles

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2003/2004 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

Tema 1. Introducción a las estructuras y tipos de datos

Tema 1. Introducción a las estructuras y tipos de datos Tema 1. Introducción a las estructuras y tipos de datos http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia,bmartine,morales,sanchiz}@icc.uji.es Estructuras

Más detalles

Análisis amortizado El plan:

Análisis amortizado El plan: Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Tema 09: TAD Árbol binario

Tema 09: TAD Árbol binario Tema 09: TAD Árbol binario M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Introducción El árbol binario

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto de Computación - Facultad de Ingeniería - Universidad de la República Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

Introducción a los tipos abstractos de datos

Introducción a los tipos abstractos de datos Introduccin a los tipos abstractos de datos o Definiciones o TAD s básicos o Representaciones básicas Estructuras de datos, curso 2005/06 I.T.Informática de Sistemas Universidad de Valladolid Concepto

Más detalles

CONJUNTOS Y RELACIONES BINARIAS

CONJUNTOS Y RELACIONES BINARIAS UNIVERSIDAD CATÓLICA ANDRÉS BELLO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INFORMÁTICA CÁTEDRA DE LÓGICA COMPUTACIONAL CONJUNTOS Y RELACIONES BINARIAS INTRODUCCIÓN Intuitivamente, un conjunto es una

Más detalles

ESTRUCTURAS DE DATOS Y ALGORITMOS

ESTRUCTURAS DE DATOS Y ALGORITMOS ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno

Más detalles

CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo. La estructura sería:

CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo. La estructura sería: CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo La estructura sería: typedef struct s_cola ELEM elementos[max]; int primero,ultimo; STRUCTCOLA,*COLA;

Más detalles

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda

Más detalles

Estructuras de Datos y Algoritmos. Árboles de Expresión

Estructuras de Datos y Algoritmos. Árboles de Expresión Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.

Más detalles

Algoritmos sobre Grafos

Algoritmos sobre Grafos Sexta Sesión 27 de febrero de 2010 Contenido Deniciones 1 Deniciones 2 3 4 Deniciones sobre Grafos Par de una lista de nodos y una lista de enlaces, denidos a su vez como pares del conjunto de nodos.

Más detalles

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny COLAS 2002 GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURA DE DATOS TEMA 4 Estructura de datos Cola ÍNDICE 4.1. Definición y ejemplos...3 4.2. El TAD

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Relaciones binarias. ( a, b) = ( c, d) si y solamente si a = c y b = d

Relaciones binarias. ( a, b) = ( c, d) si y solamente si a = c y b = d Relaciones binarias En esta sección estudiaremos formalmente las parejas de objetos que comparten algunas características o propiedades en común. La estructura matemática para agrupar estas parejas en

Más detalles

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Árboles Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Paula Echenique Una de las estructuras de datos más importantes

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL UNIVERSIDAD NACIONAL DE INGENIERÍA ALGORITMOS Y ESTRUCTURA CERTIFICA ORGANIZA Mayor Información: informes@uni.edu.pe Visite Nuestra Web http://www.ceps.uni.edu..pe OBJETIVOS GENERALES - Diseñar algoritmos

Más detalles

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica TEMA 3. Árboles Objetivos En este tema se estudia una de las estructuras de datos no lineal más importante en computación, el árbol. Comenzaremos introduciendo la terminología asociada a los árboles y

Más detalles

Árboles y esquemas algorítmicos. Tema III

Árboles y esquemas algorítmicos. Tema III Árboles y esquemas algorítmicos Tema III Bibliografía Tema III (lecciones 15 a 22) del libro Campos Laclaustra, J.: Estructuras de Datos y Algoritmos, Prensas Universitarias de Zaragoza, Colección Textos

Más detalles

Estructura de Datos. Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos)

Estructura de Datos. Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos) Ing. En Sistemas Computacionales Estructura de Datos Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos) Ing. Néstor Alejandro Carrillo López Arboles Un árbol es un conjunto finito

Más detalles

Definición recursiva de los árboles

Definición recursiva de los árboles Árboles Un árbol es una estructura de datos jerarquizada ada dato reside en un nodo, y existen relaciones de parentesco entre nodos: padre, hijo, hermano, ascendiente, descendiente, etc. Ejemplo: apítulos

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

Clase 32: Árbol balanceado AVL

Clase 32: Árbol balanceado AVL Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes

Más detalles

Nombre: Francis Ariel Jiménez Zapata. Matricula: 2010-0077. Tema: Trabajando con Windows Server 2008. Materia: Sistema Operativo II.

Nombre: Francis Ariel Jiménez Zapata. Matricula: 2010-0077. Tema: Trabajando con Windows Server 2008. Materia: Sistema Operativo II. Nombre: Francis Ariel Jiménez Zapata Matricula: 2010-0077 Tema: Trabajando con Windows Server 2008 Materia: Sistema Operativo II Grupo: 2 Facilitador: José Doñe Crear y administrar grupos en Active Directory

Más detalles

INSTITUTO TECNOLÓGICO DE NUEVO LAREDO ING. EN SISTEMAS COMPUTACIONALES

INSTITUTO TECNOLÓGICO DE NUEVO LAREDO ING. EN SISTEMAS COMPUTACIONALES OBJETIVO: El estudiante desarrollará aplicaciones mediante la implementación de estructuras de datos basadas en Pilas. MATERIAL Y EQUIPO NECESARIO: Papel y lápiz Se recomienda la comprobación de los ejercicios

Más detalles

Práctica 2 Gráficos Vectoriales con SVG (versión 29.09.14)

Práctica 2 Gráficos Vectoriales con SVG (versión 29.09.14) Práctica 2 Gráficos Vectoriales con SVG (versión 29.09.14) Programación 3 Curso 2011-2012 Departamento de Lenguajes y Sistemas Informáticos Universidad de Alicante 1. Introducción En esta segunda práctica

Más detalles

Estructura de Datos Unidad 6: ARBOLES

Estructura de Datos Unidad 6: ARBOLES Estructura de Datos Unidad 6: ARBOLES A. CONCEPTO DE ARBOL B. TIPOS DE ARBOL C. ARBOL BINARIO D. IMPLEMENTACION DE UN ARBOL BINARIO E. PROYECTO Introducción En ciencias de la informática, un árbol es una

Más detalles

SQL Server 2008 Bootcamp Día 2. SQL 2008 HierarchyID

SQL Server 2008 Bootcamp Día 2. SQL 2008 HierarchyID SQL Server 2008 Bootcamp Día 2 SQL 2008 HierarchyID Información sobre versiones beta Toda la información y ejemplos respectivos, son relativos a la beta pública CTP5 de SQL Server 2008 Comandos y funcionalidades

Más detalles

APLICATECA. didimo Marketing. Manual de usuario. By DIDIMO Servicios Móviles. www.telefonica.es

APLICATECA. didimo Marketing. Manual de usuario. By DIDIMO Servicios Móviles. www.telefonica.es APLICATECA didimo Marketing Manual de usuario. By DIDIMO Servicios Móviles www.telefonica.es APLICATECA INDICE INDICE... 2 1 QUÉ ES DIDIMO MARKETING?... 3 2 MENÚ PRINCIPAL... 4 2.1 CAMPAÑAS... 4 2.1.1

Más detalles

Programación II Árboles binarios de búsqueda (ABB)

Programación II Árboles binarios de búsqueda (ABB) Programación II Árboles binarios de búsqueda (ABB) Definición Un árbol binario de búsqueda(abb) a es una estructura de datos de tipo árbol binario en el que para todos sus nodos, el hijo izquierdo, si

Más detalles

{} representa al conjunto vacío, es decir, aquel que no contiene elementos. También se representa por.

{} representa al conjunto vacío, es decir, aquel que no contiene elementos. También se representa por. 2. Nociones sobre Teoría de Conjuntos y Lógica Para llevar a cabo nuestro propósito de especificar formalmente los problemas y demostrar rigurosamente la correctitud de nuestro programas, introduciremos

Más detalles

Primer Parcial de Programación 3 (1/10/2009)

Primer Parcial de Programación 3 (1/10/2009) Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión

Más detalles

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática

Algoritmos y Estructuras de Datos Ingeniería en Informática 1.1.Escribe una especificación informal para los distintos métodos de ordenación que conozcas. La especificación debe ser genérica, es decir trabajar con elementos de cualquier tipo. En qué se diferencia

Más detalles

Organización de Computadoras

Organización de Computadoras Organización de Computadoras Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre de 2015 Proyecto N 1 Programación en Lenguaje C El objetivo principal

Más detalles

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril 2009. apoloval@gsyc.es. GSyC - 2009 Introducción 1

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril 2009. apoloval@gsyc.es. GSyC - 2009 Introducción 1 Sistema de Ficheros Sistemas Operativos - ITIG Álvaro Polo Valdenebro apoloval@gsyc.es Abril 2009 GSyC - 2009 Introducción 1 c 2009 GSyC Algunos derechos reservados. Este trabajo se distribuye bajo la

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Tema 5.1. Árboles. Árboles binarios y generales Prof. Dr. P. Javier Herrera Contenido 1. Introducción 2. Terminología 3. Árboles binarios 4. Árboles generales Tema 5.1.

Más detalles

Ejemplos: Sean los conjuntos: A = { aves} B = { peces } C = { anfibios }

Ejemplos: Sean los conjuntos: A = { aves} B = { peces } C = { anfibios } La Teoría de Conjuntos es una teoría matemática, que estudia básicamente a un cierto tipo de objetos llamados conjuntos y algunas veces, a otros objetos denominados no conjuntos, así como a los problemas

Más detalles

Estructura de Datos. Estructuras de Datos no lineales : Árboles

Estructura de Datos. Estructuras de Datos no lineales : Árboles Estructura de Datos Estructuras de Datos no lineales : Árboles Definiciones de Árbol En términos matemáticos, un árbol es cualquier conjunto de puntos, llamados vértices, y cualquier conjunto de pares

Más detalles

Herramientas computacionales para la matemática MATLAB: Arreglos

Herramientas computacionales para la matemática MATLAB: Arreglos Herramientas computacionales para la matemática MATLAB: Arreglos Verónica Borja Macías Marzo 2013 1 Arreglos Un arreglo es una estructura que MATLAB utiliza para almacenar y manipular datos. Es una lista

Más detalles

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PHPMYADMIN Y MYSQL Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PhpMyAdmin es una herramienta para la administración del servidor de base de datos MySQL que dispone

Más detalles

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1 Sistemas de producción y búsqueda de soluciones Area de Computación e Inteligencia Artificial 1 Técnicas de búsqueda Resolución de problemas en Inteligencia Artificial. En general, podemos afirmar que

Más detalles

MultiBase Cosmos. Notas a la versión 4.4, release 1. BASE 100, S.A. www.base100.com

MultiBase Cosmos. Notas a la versión 4.4, release 1. BASE 100, S.A. www.base100.com MultiBase Cosmos Notas a la versión 4.4, release 1 BASE 100, S.A. www.base100.com Índice IMPLEMENTACIONES... 3 MÉTODOS DE LA CLASE SIMPLECONTROL... 4 MÉTODOS DE LA CLASE INTEGER... 4 MÉTODOS DE LA CLASE

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 7

Estructura de datos y de la información Boletín de problemas - Tema 7 Estructura de datos y de la información Boletín de problemas - Tema 7 1. Un concesionario de coches tiene un número limitado de M modelos, todos en un número limitado de C colores distintos. Cuando un

Más detalles

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones: 2. Conjuntos 2.1 Introducción El concepto de conjunto, de singular importancia en la ciencia matemática y objeto de estudio de una de sus disciplinas más recientes, está presente, aunque en forma informal,

Más detalles

ANÁLISIS DESCRIPTIVO CON SPSS

ANÁLISIS DESCRIPTIVO CON SPSS ESCUELA SUPERIOR DE INFORMÁTICA Prácticas de Estadística ANÁLISIS DESCRIPTIVO CON SPSS 1.- INTRODUCCIÓN Existen dos procedimientos básicos que permiten describir las propiedades de las distribuciones:

Más detalles

OBJETIVOS ÍNDICE MÓDULO 1: ACCESS XP 1ª PARTE

OBJETIVOS ÍNDICE MÓDULO 1: ACCESS XP 1ª PARTE OBJETIVOS El objetivo de este curso es descubrir cómo utilizar una de las herramientas más utilizadas en la gestión y ordenación de datos de las empresas: la Base de Datos. Descubrir cómo diseñar, crear,

Más detalles

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011

Más detalles

Ing. Manuel Ramírez López ITESCA

Ing. Manuel Ramírez López ITESCA ANTOLOGÍA DE ESTRUCTURA DE DATOS 2 Ing. Manuel Ramírez López ITESCA Estructura de Datos Antología de la Materia 2 Instituto Tecnológico Superior de Cajeme Carretera Internacional Km. 2 Teléfono (644) 415

Más detalles

2. Tipos abstractos de datos TEMA 3: SEMÁNTICA AXIOMÁTICA. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos

2. Tipos abstractos de datos TEMA 3: SEMÁNTICA AXIOMÁTICA. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos TEMA 3: SEMÁNTICA AXIOMÁTICA 1. Semántica axiomática de un lenguaje de programación Para poder utilizar tipos estructurados en los programas, será necesario tenerlos definidos como Tipos Abstractos de

Más detalles

Introducción al lenguaje Java Práctica Editor de Línea

Introducción al lenguaje Java Práctica Editor de Línea Introducción al lenguaje Java Práctica Editor de Línea (Diciembre 2006) 1 Introducción al lenguaje Java Práctica Editor de Línea Dpto. LSIIS. Unidad de Programación Normas y Objetivos Objetivo: el objetivo

Más detalles

ESTRUCTURAS DE DATOS ÁRBOLES 143

ESTRUCTURAS DE DATOS ÁRBOLES 143 ESTRUCTURAS DE DATOS ÁRBOLES 143 TEMA 4. ÁRBOLES 4.1. CONCEPTOS GENERALES. Un árbol es una estructura de datos ramificada (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí

Más detalles

Estructuras de datos y algoritmos

Estructuras de datos y algoritmos Estructuras de datos y algoritmos 1. Introducción 2. Estructuras de datos lineales 3. Estructuras de datos jerárquicas 4. Grafos y caminos 5. Implementación de listas, colas, y pilas 6. Implementación

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles