Definición de TDAs usando BNF
               Estructura de Datos – FIEC03012




                                            1
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
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
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
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
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
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
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
TDA Árbol

    Definición

        <arbol> ::= <<NULL>> | <nodo>
        <nodo> ::= <contenido>{<arbol>}
        <contenido> ::= <<dato>>{<<dato>>}

    Operaciones

        Dependen de las características particulares del árbol




                                                                 9
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
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
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
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
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
Modificación de Vértices
      GRAFO_AsignarContenidoVertice(referenciaVertice, valorContenido)

Modificación de Aristas
      GRAFO_AsignarEtiquetaArista(referenciaArista, valorEtiqueta)




                                                                         15

ED 02 0_tda_definicion_td_as-bnf

  • 1.
    Definición de TDAsusando BNF Estructura de Datos – FIEC03012 1
  • 2.
    Tabla de Contenidos TDAArreglo 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 SimpleOrdenada (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 DoblementeEnlazada (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 BinarioBú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