Mais conteúdo relacionado Semelhante a ED 02 0_tda_definicion_td_as-bnf (20) ED 02 0_tda_definicion_td_as-bnf2. Tabla de Contenidos
TDA Arreglo Unidimensional ....................................................... 3
Definición ........................................................................................................... 3
Operaciones........................................................................................................ 3
Básicas ........................................................................................................... 3
Extendidas...................................................................................................... 3
TDA Lista Simple (LSE) ............................................................ 4
Definición ........................................................................................................... 4
Operaciones........................................................................................................ 4
TDA Lista Simple Ordenada (LSO) ................................................. 5
Definición ........................................................................................................... 5
Operaciones........................................................................................................ 5
TDA Lista Doblemente Enlazada (LDE) ............................................ 6
Definición ........................................................................................................... 6
Operaciones........................................................................................................ 6
TDA Pila ........................................................................... 7
Definición ........................................................................................................... 7
Operaciones........................................................................................................ 7
TDA Cola .......................................................................... 8
Definición ........................................................................................................... 8
Operaciones........................................................................................................ 8
TDA Árbol.......................................................................... 9
Definición ........................................................................................................... 9
Operaciones........................................................................................................ 9
TDA Árbol Binario (AB) ........................................................... 10
Definición ......................................................................................................... 10
Operaciones...................................................................................................... 10
TDA Árbol Binario Búsqueda (ABB)............................................... 11
Definición ......................................................................................................... 11
Operaciones...................................................................................................... 11
TDA Árbol Adelson, Velkii & Landis (AVL) ........................................ 12
Definición ......................................................................................................... 12
Operaciones...................................................................................................... 12
TDA Árbol B (AB) ................................................................ 13
Definición ......................................................................................................... 13
Operaciones...................................................................................................... 13
TDA Grafo ....................................................................... 14
Definición ......................................................................................................... 14
Operaciones...................................................................................................... 14
2
3. TDA Arreglo Unidimensional
Definición
<arreglo> ::= {<elemento> 0, ... , <elemento><iterador>, ...
<elemento> <<NUM_ELEM>>-1 }
<iterador> ::= (0,...,<<NUM_ELEM>>-1)
<elemento>::= <<dato>>|<<dato>>{<<dato>>}
Operaciones
Básicas
Constructor y Destructor
A1D_Crear (nombreArreglo, rangoIndice, tipoBase)
A1D_Eliminar(nombreArreglo)
Selector
A1D_AccederElemento (nombreArreglo, indiceSelección)
El selector puede usarse para:
o extraer un valor del arreglo
o modificar el valor de una celda del arreglo
Extendidas
Dependen del tipoBase, por ejemplo:
A1D_Ordenar(nombreArreglo, tipoOrdenamiento)
A1D_BuscarElemento(nombreArreglo, elemento): indiceSelección
3
4. TDA Lista Simple (LSE)
Definición
<listaSimple> ::= <comienzo> + {<nodo>}
<nodo> ::= <contenido> + <enlace>
<contenido> ::= <<dato>>{<<dato>>}
<enlace> ::= (<<referencia_nodo>> | NULL)
<comienzo> :: =<enlace>
Operaciones
Creación/Destrucción
LSE_Crear(nombreLista)
LSE_Eliminar(nombreLista)
Comprobación de Estado
LSE_EstaVacia(nombreLista) : Booleano
LSE_EstaVacia(referenciaNodo) : Booleano
LSE_EstaLlena(nombreLista) : Booleano
Inserción de Nodos
LSE_InsertarNodo(nombreLista, nodo, posicion)
LSE_InsertarNodo(nombreLista, nodo)
Borrado de Nodos
LSE_BorrarNodo(nombreLista, nodo)
Búsqueda de un nodo
LSE_BuscarNodo(nombreLista, dato) : contenido
LSE_BuscarNodo(nombreLista, dato) : referenciaNodo
LSE_EsNodoDeLista(nombreLista,nodo) : Booleano
Recorrido de la lista
LSE_Recorrer(nombreLista )
Modificación de Nodos
LSE_AsignarContenidoNodo(referenciaNodo, valorContenido)
LSE_AsignarEnlaceNodo(referenciaNodo, valorEnlace)
Acceso a los nodos
LSE_ContenidoNodo(referenciaNodo) : contenido
LSE_SiguienteNodo(referenciaNodo) : enlace
4
5. TDA Lista Simple Ordenada (LSO)
Definición
<listaOrdenada> ::= <comienzo> + {<nodo>}
<comienzo> ::= <enlace>
<enlace> ::= (<<referencia_nodo>> | NULL)
<nodo> ::= <clave> + <contenido> + <enlace>
<clave> ::= <<dato>>{<<dato>>}
<contenido> ::= {<<dato>>}
Operaciones
Creación/Eliminación
LSO_Crear(nombreLista)
LSO_Eliminar(nombreLista)
Comprobación de Estado
LSO_EstaVacia(nombreLista) : Booleano
LSO_EstaVacia(referenciaNodo) : Booleano
LSO_EstaLlena(nombreLista) : Booleano
Inserción de Nodos
LSO_InsertarNodo(nombreLista, valorClave, nodo)
Borrado de Nodos
LSO_BorrarNodo(nombreLista, valorClave)
Búsqueda de un nodo
LSO_BuscarNodo(nombreLista, valorClave) : informacion
LSO_BuscarNodo(nombreLista, valorClave) : referenciaNodo
LSO_EsNodoDeLista(nombreLista, valorClave) : Booleano
Recorrido
LSO_Recorrer(nombreLista )
Modificación de Nodos
LSO_AsignarContenidoNodo(referenciaNodo, valorContenido)
LSO_AsignarEnlaceNodo(referenciaNodo, valorEnlace)
LSO_AsignarEnlaceNodo(referenciaNodo, valorClave)
Acceso a los nodos
LSO_ContenidoNodo(referenciaNodo) : contenido
LSO_SiguienteNodo(referenciaNodo) : enlace
LSO_ClaveNodo(referenciaNodo) : clave
5
6. TDA Lista Doblemente Enlazada (LDE)
Definición
<lde> ::= <comienzo> + {<nodo>}
<comienzo> :: = <enlace>
<enlace> ::= (<<referencia_nodo>> | NULL)
<nodo> ::= <contenido>+<predecesor>+<sucesor>
<predecesor> ::= <enlace>
<sucesor> ::= <enlace>
< contenido > ::= <<dato>>{<<dato>>}
Operaciones
Creación/Destrucción
LDE_Crear(nombreLista)
LDE_Eliminar(nombreLista)
Comprobación de Estado
LDE_EstaVacia(nombreLista) : Booleano
LDE_EstaVacia(referenciaNodo) : Booleano
LDE_EstaLlena(nombreLista) : Booleano
Inserción de Nodos
LDE_InsertarNodo(nombreLista, nodo, posicion)
LDE_InsertarNodo(nombreLista, nodo)
Borrado de Nodos
LDE_BorrarNodo(nombreLista, valorInfo)
Búsqueda de un nodo
LDE_BuscarNodo(nombreLista, dato) : contenido
LDE_BuscarNodo(nombreLista, dato) : referenciaNodo
LDE_EsNodoDeLista(nombreLista,nodo) : Booleano
Recorrido de la lista
LDE_Recorrer(nombreLista )
Modificación de Nodos
LDE_AsignarContenidoNodo(referenciaNodo, valorContenido)
LDE_AsignarEnlaceNodo(referenciaNodo, valorEnlace)
Acceso a los nodos
LDE_ContenidoNodo(referenciaNodo) : contenido
LDE_SiguienteNodo(referenciaNodo) : enlace
LDE_AnteriorNodo(referenciaNodo) : enlace
6
7. TDA Pila
Definición
<pila> ::= <cabecera> + {<nodo>}
<cabecera> ::= <enlace>
<enlace> ::= (<<ReferenciaNodo>> | NULL)
<nodo> ::= <contenido> + <enlace>
<contenido> ::= <<dato>>{<<dato>>}
Operaciones
Creación/Destrucción
Pila_Crear(nombrePila)
Pila_Eliminar(nombrePila)
Comprobación de Estado
Pila_EstaVacia(nombrePila) : Booleano
Pila_EstaLlena(nombrePila) : Booleano
Inserción de Nodos
Pila_InsertarNodo(nombrePila, nodo) 1
Extracción de Nodos
Pila_SacarNodo(nombrePila): nodo2
Acceso a la cabecera
Pila_Tope(nombrePila): nodo
1
Push
2
Pop
7
8. TDA Cola
Definición
<cola> ::= <frente> + <final> + {<nodo>}
<frente> ::= <enlace>
<enlace> ::= (<<ReferenciaNodo>> | NULL)
<final> ::= <enlace>
<nodo> ::= <contenido> + <enlace>
<contenido> ::= <<dato>>{<<dato>>}
Operaciones
Creación/Destrucción
Cola_Crear(nombreCola)
Cola_Eliminar(nombreCola)
Comprobación de Estado
Cola_EstaVacia(nombreCola) : Booleano
Cola_EstaLlena(nombreCola) : Booleano
Inserción de Nodos
Cola_InsertarNodo(nombreCola, nodo) 3
Extracción de Nodos
Cola_SacarNodo(nombreCola): nodo 4
Acceso a la cabecera
Cola_Tope(nombreCola): nodo
3
Push
4
Pop
8
9. TDA Árbol
Definición
<arbol> ::= <<NULL>> | <nodo>
<nodo> ::= <contenido>{<arbol>}
<contenido> ::= <<dato>>{<<dato>>}
Operaciones
Dependen de las características particulares del árbol
9
10. TDA Árbol Binario (AB)
Definición
<arbol>::= nulo | <nodo>
<nodo>::=<contenido>+<izq>+<der>
<izq>::=<arbol>
<der>::=<arbol>
<contenido>::<<dato>>|{<<dato>>}
Operaciones
Creación/Destrucción
ABin_Crear(nombreArbol)
ABin_Eliminar(nombreArbol)
Comprobación de Estado
ABin_EstaVacio(nombreArbol) : Booleano
ABin_EstaLleno(nombreArbol) : Booleano
Inserción de Nodos
ABin_InsertarNodo(nombreArbol, nodo)
Extracción de Nodos
ABinl_SacarNodo(nombreArbol, nodo): nodo
Búsqueda de Nodo
ABin_Buscar(nombreArbol, contenido ): nodo
Recorrido
ABin_Recorrer(nombreArbol, tipoRecorrido)
Modificación de Nodos
ABin_AsignarContenidoNodo(referenciaNodo, valorContenido)
ABin_AsignarEnlaceIzqNodo(referenciaNodo, valo rEnlace)
ABin_AsignarEnlaceDerNodo(referenciaNodo, valorEnlace)
Acceso a los nodos
ABin_ContenidoNodo(referenciaNodo) : contenido
ABin_IzqNodo(referenciaNodo) : enlace
Abin_DerNodo(referenciaNodo) : enlace
Abin_EsHojaNodo(referenciaNodo) : bool
10
11. TDA Árbol Binario Búsqueda (ABB)
Definición
<abb>::= <<NULL>> | <nodo>
<nodo>::=<clave>+<contenido>+<izq>+<der>
<izq>::=<arbol>
<der>::=<arbol>
<clave>::<<dato>>|{<<dato>>}
<contenido>::<<dato>>|{<<dato>>}
Operaciones
Creación/Destrucción
ABB_Crear(nombreArbol)
ABB_Eliminar(nombreArbol)
Comprobación de Estado
ABB_EstaVacio(nombreArbol) : Booleano
ABB_EstaLleno(nombreArbol) : Booleano
Inserción de Nodos
ABB_InsertarNodo(nombreArbol, nodo, valorClave)
Extracción de Nodos
ABB_SacarNodo(nombreArbol, valorClave): nodo
Búsqueda de Nodo
ABB_Buscar(nombreArbol, valorClave): nodo
Recorrido
ABB_Recorrer(nombreArbol, tipoRecorrido)
Modificación de Nodos
ABB_AsignarContenidoNodo(referenciaNodo, valorContenido)
ABB_AsignarEnlaceIzqNodo(referenciaNo do, valorEnlace)
ABB_AsignarEnlaceDerNodo(referenciaNodo, valorEnlace)
Acceso a los nodos
ABB_ClaveNodo(referenciaNodo) : clave
ABB_ContenidoNodo(referenciaNodo) : contenido
ABB_IzqNodo(referenciaNodo) : enlace
ABB_DerNodo(referenciaNodo) : enlace
ABB_EsHojaNodo(referenciaNodo) : bool
11
12. TDA Árbol Adelson, Velkii & Landis (AVL)
Definición
<avl>::= <<NULL>> | <nodo>
<nodo>::=<clave>+<contenido>+<izq>+<der>+<factor_equilibrio>
<izq>::=<arbol>
<der>::=<arbol>
<clave>::<<dato>>|{<<dato>>}
<contenido>::<<dato>>|{<<dato>>}
< factor_equilibrio> ::= (<<-1>> | <<0>> | <<1>>)
Operaciones
Creación/Destrucción
AVL_Crear(nombreArbol)
AVL_Eliminar(nombreArbol)
Comprobación de Estado
AVL_EstaVacio(nombreArbol) : Booleano
AVL_EstaLleno(nombreArbol) : B ooleano
Inserción de Nodos
AVL_InsertarNodo(nombreArbol, nodo, valorClave)
Extracción de Nodos
AVL_SacarNodo(nombreArbol, valorClave): nodo
Búsqueda de Nodo
AVL_Buscar(nombreArbol, valorClave): nodo
Recorrido
AVL_Recorrer(nombreArbol, tipoRecorrido)
Modificación de Nodos
AVL_AsignarContenidoNodo(referenciaNodo, valorContenido)
AVL_AsignarEnlaceIzqNodo(referenciaNodo, valorEnlace)
AVL_AsignarEnlaceDerNodo(referenciaNodo, valorEnlace)
Acceso a los nodos
AVL_ClaveNodo(referenciaNodo) : clave
AVL_ContenidoNodo(referenciaNodo) : contenido
AVL_IzqNodo(referenciaNodo) : enlace
AVL_DerNodo(referenciaNodo) : enlace
AVL_EsHojaNodo(referenciaNodo) : bool
Equilibrio
AVL_II(referenciaNodo)
AVL_ID(referenciaNodo)
AVL_DD(referenciaNodo)
AVL_DI(referenciaNodo)
12
13. TDA Árbol B (AB)
Definición
<arbolB> ::= <raiz> + {<pagina>}
<raiz> ::= <enlace>
<enlace> ::= (<<referencia_pagina>> | NULL)
<pagina>::= <<numero_elementos>> + <antecesora> +
<nodo>{<nodo>}
<antecesora> ::= <enlace>
<nodo> ::= <clave> + <contenido> + <siguiente>
<clave> ::= <<dato>>{<<dato>>}
<dato> ::= {<<dato>>}
<siguiente> ::= <enlace>
Operaciones
Creación/Destrucción
AB_Crear(nombreArbol)
AB_Eliminar(nombreArbol)
Comprobación de Estado
AB_EstaVacio(nombreArbol) : Booleano
AB_EstaLleno(nombreArbol) : Booleano
Inserción de Nodos
AB_InsertarNodo(nombreArbol, nodo, valorClave)
Extracción de Nodos
AB_SacarNodo(nombreArbol, valorClave): nodo
Búsqueda de Nodo
AB_Buscar(nombreArbol, valorClave): nodo
Recorrido
AB_Recorrer(nombreArbol, tipoRecorrido)
Modificación de Nodos
AB_AsignarContenidoNodo(referenciaNodo, valorContenido)
AB_AsignarEnlaceIzqNodo(referenciaNodo, valorEnlace)
AB_AsignarEnlaceDerNodo(referenciaNodo, valorEnlace)
Acceso a los nodos
AB_ClaveNodo(referenciaNodo) : clave
AB_ContenidoNodo(referenciaNodo) : contenido
AB_IzqNodo(referenciaNodo) : enlace
AB_DerNodo(referenciaNodo) : enlace
AB_EsHojaNodo(referenciaNodo) : bool
13
14. TDA Grafo
Definición
<grafo> :: = {<vertice>} + {<arista>}
<vertice> ::= <<refVertice>> + [<<contenido>>]
<arista> ::= <<refVertice>> + <<refVertice>>
<grafoEtiquetado> :: = {<vertice>} + {<aristaEtiquetada>}
<vertice> ::= <<refVertice>> + [<<contenido>>]
<aristaEtiquetada> ::= <<refVertice>>+<<refVertice>>+<<etiqueta>>
Operaciones
Creación/Destrucción
GRAFO_Crear(nombreGrafo)
GRAFO_Eliminar(nombreGrafo)
Comprobación de Estado
GRAFO_EstaVacio(nombreGrafo) : Booleano
GRAFO_EstaLleno(nombreGrafo) : Booleano
Inserción
GRAFO_InsertarVertice(nombreGrafo, vertice)
GRAFO_InsertarArista(nombreGrafo, vertice1, vertice2)
Extracción
GRAFO_SacarVertice(nombreGrafo, vertice): vertice
GRAFO_SacarArista(nombreGrafo, arista): arista
Búsqueda
GRAFO_Buscar(nombreGrafo, contenido): vertice
Recorrido
GRAFO_Recorrer(nombreGrafo, tipoRecorrido)
Acceso a los vértices
GRAFO_ContenidoVertice(referenciaVertice) : contenido
GRAFO_GradoVertice (referenciaVertice) : entero
GRAFO_GradoEntranteVertice (referenciaVertice) : entero
GRAFO_GradoSalienteVertice (referenciaVertice) : entero
GRAFO_AdyacentesVertice (referenciaVertice) : {referenciaVertice}
GRAFO_IncidentesVertice (referenciaVertice) : {referenciaArista}
GRAFO_SonAdyacentes(referenciaVertice1, referenciaVertice2) :bool
Acceso a las aristas
GRAFO_VerticesArista(referenciaArista) : {refVertice1, refVertice2}
GRAFO_DestinoArista(referenciaArista) : refVertice
GRAFO_OrigenArista(referenciaArista) : refVertice
GRAFO_EtiquetaArista(referenciaArista) : etiqueta
14
15. Modificación de Vértices
GRAFO_AsignarContenidoVertice(referenciaVertice, valorContenido)
Modificación de Aristas
GRAFO_AsignarEtiquetaArista(referenciaArista, valorEtiqueta)
15