COLAS: IMPLEMENTACIN CON UN VECTOR - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

COLAS: IMPLEMENTACIN CON UN VECTOR

Description:

{throw EDesbordamiento('La cola esta llena');} else _espacio[libre] ... {throw EAccesoIndebido('La cola esta vacia');} else { prim=(prim 1) % longMax; num=num-1; ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 15
Provided by: claramaria
Category:
Tags: colas | con | implementacin | vector | cola | la

less

Transcript and Presenter's Notes

Title: COLAS: IMPLEMENTACIN CON UN VECTOR


1
COLAS IMPLEMENTACIÓN CON UN VECTOR
2
  • templateltclass TElemgt
  • class TCola
  • public
  • static const int longMax 100
  • TCola( )
  • bool esVacia ( ) const
  • void anadir( const TElem x ) throw
    (EDesbordamiento)
  • void eliminar( ) throw (EAccesoIndebido)
  • const TElem primero( ) const throw
    (EAccesoIndebido)
  • bool esLlena ( ) const
  • void escribe( String salida )
  • private
  • TElem _espaciolongMax
  • int prim,libre
  • int num

3
  • templateltclass TElemgt
  • TColaltTElemgtTCola()
  • num0 prim0 libre0
  • templateltclass TElemgt
  • bool TColaltTElemgtesVacia ( ) const
  • return (num0)
  • templateltclass TElemgt
  • void TColaltTElemgtanadir( const TElem x ) throw
    (EDesbordamiento)
  • if (esLlena())
  • throw EDesbordamiento("La cola esta
    llena")
  • else
  • _espaciolibrex
  • libre(libre1) longMax
  • numnum1

4
  • templateltclass TElemgt
  • void TColaltTElemgteliminar( ) throw
    (EAccesoIndebido)
  • if (esVacia())
  • throw EAccesoIndebido("La cola esta
    vacia")
  • else
  • prim(prim1) longMax
  • numnum-1
  • templateltclass TElemgt
  • const TElem TColaltTElemgtprimero( ) const throw
    (EAccesoIndebido)
  • if (esVacia())
  • throw EAccesoIndebido("La cola esta
    vacia")
  • else
  • return _espacioprim

5
  • templateltclass TElemgt
  • bool TColaltTElemgtesLlena ( ) const
  • return (numlongMax)
  • templateltclass TElemgt
  • void TColaltTElemgtescribe( String salida )
  • if (!esVacia())
  • int iprim
  • int ult (libre-1)longMax
  • while (i!ult)
  • salidasalidaAnsiString(_espacioi)", "
  • i(i1) longMax
  • salidasalida_espacioult

6
COLASIMPLEMENTACIONCON MEMORIA DINÁMICA
7
  • templateltclass TElemgt
  • class TColaDinamica
  • template ltclass TElemgt
  • class TNodoCola
  • private
  • TElem _elem
  • TNodoColaltTElemgt _sig
  • TNodoCola( const TElem elem,
    TNodoColaltTElemgt sig)
  • public
  • const TElem elem() const
  • TNodoColaltTElemgt sig() const
  • friend TColaDinamicaltTElemgt

8
  • template ltclass TElemgt
  • class TColaDinamica
  • public
  • TColaDinamica( )
  • TColaDinamica( const TColaDinamicaltTElemgt
    c)
  • TColaDinamica( )
  • TColaDinamicaltTElemgt operator( const
    TColaDinamicaltTElemgt c)
  • void anadir(const TElem x)
  • const TElem primero( ) const throw
    (EAccesoIndebido)
  • void eliminar( ) throw (EAccesoIndebido)
  • bool esVacia( ) const
  • void escribe( String salida) const
  • private
  • TNodoColaltTElemgt _primero,_ultimo
  • void libera()
  • void copia(const TColaDinamicaltTElemgt
    c)

9
  • template ltclass TElemgt
  • TNodoColaltTElemgtTNodoCola( const TElem elem,
    TNodoColaltTElemgt sig )
  • _elem(elem), _sig(sig)
  • template ltclass TElemgt
  • const TElem TNodoColaltTElemgtelem() const
  • return _elem
  • template ltclass TElemgt
  • TNodoColaltTElemgt TNodoColaltTElemgtsig() const
  • return _sig

10
  • templateltclass TElemgt
  • TColaDinamicaltTElemgtTColaDinamica()_primero(0),
    _ultimo(0)
  • templateltclass TElemgt
  • TColaDinamicaltTElemgtTColaDinamica( const
    TColaDinamicaltTElemgt c)
  • copia(c)
  • templateltclass TElemgt
  • TColaDinamicaltTElemgtTColaDinamica()
  • libera()
  • template ltclass TElemgt
  • TColaDinamicaltTElemgt TColaDinamicaltTElemgtopera
    tor( const TColaDinamicaltTElemgt c )
  • if( this ! c )
  • libera()
  • copia(c)
  • return this

11
  • templateltclass TElemgt
  • void TColaDinamicaltTElemgtanadir(const TElem x)
  • TNodoColaltTElemgt aux new TNodoColaltTElemgt(x,
    0)
  • if (esVacia()) _primeroaux
  • else _ultimo-gt_sigaux
  • _ultimoaux
  • templateltclass TElemgt
  • void TColaDinamicaltTElemgteliminar() throw
    (EAccesoIndebido)
  • if (esVacia()) throw EAccesoIndebido()
  • else
  • TNodoColaltTElemgt aux_primero
  • _primero_primero-gt_sig
  • if (_primero0) _ultimo0
  • delete aux

12
  • templateltclass TElemgt
  • const TElem TColaDinamicaltTElemgtprimero()
    const throw (EAccesoIndebido)
  • if (esVacia()) throw EAccesoIndebido()
  • else
  • return _primero-gt_elem
  • templateltclass TElemgt
  • bool TColaDinamicaltTElemgtesVacia( ) const
  • return (_primero0)
  • templateltclass TElemgt
  • void TColaDinamicaltTElemgtlibera()
  • while (!esVacia())
  • TNodoColaltTElemgt aux_primero
  • _primero_primero-gt_sig
  • if (_primero0) _ultimo0
  • delete aux

13
  • templateltclass TElemgt
  • void TColaDinamicaltTElemgtcopia(const
    TColaDinamicaltTElemgt c)
  • _numc._num
  • if ( c.esVacia() )
  • _primero 0
  • _ultimo0
  • else
  • TNodoColaltTElemgt act
  • act c._primero
  • _primero new TNodoColaltTElemgt( act-gt_elem, 0
    )
  • _ultimo_primero
  • while ( act-gt_sig ! 0 )
  • act act-gt_sig
  • _ultimo-gt_sig new TNodoColaltTElemgt(
    act-gt_elem, 0 )
  • _ultimo_ultimo-gt_sig

14
  • templateltclass TElemgt
  • void TColaDinamicaltTElemgtescribe( String
    salida) const
  • TNodoColaltTElemgt aux
  • aux_primero
  • while (aux!0)
  • salidasalidaAnsiString(aux-gt_elem)", "
  • auxaux-gt_sig
Write a Comment
User Comments (0)
About PowerShow.com