Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef TablaH
- #define TablaH
- template <class T>
- class Tabla
- {
- private:
- int numElem;
- T* tabla;
- public:
- Tabla();
- ~Tabla();
- int dameNumElem() const;
- bool buscaPos(const T&, int&);
- void push(const T&);
- bool pop(T&);
- bool dameElem(int, T&) const;
- } ;
- //----------------------------------------------------------------------------
- #endif
- ------------------------------------------------------------------------------
- ------------------------------------------------------------------------------
- ------------------------------------------------------------------------------
- ------------------------------------------------------------------------------
- ------------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "Tabla.h"
- //----------------------------------------------------------------------------
- #pragma package(smart_init)
- template <class T>
- Tabla<T>::Tabla()
- {
- numElem = 0;
- tabla = new T[MAX_TABLA];
- }
- template <class T>
- Tabla<T>::~Tabla()
- {
- numElem = 0;
- delete[MAX_TABLA] tabla;
- tabla = NULL;
- }
- template <class T>
- int Tabla<T>::dameNumElem() const
- {
- return numElem;
- }
- template <class T>
- bool Tabla<T>::buscaPos(const T& e, int& i)
- {
- for (int j=0;j<=numElem;j++)
- {
- if (e == tabla[j])
- {
- i = j;
- return true;
- }
- else
- {
- i = numElem;
- return false;
- }
- }
- }
- template <class T>
- void Tabla<T>::push(const T& d)
- {
- int i=0;
- while (i<=numElem) do
- {
- if (tabla[i]==NULL)
- {
- tabla[i]=d;
- numElem++;
- return;
- }
- else
- i++;
- }
- if (i>numElem)
- {
- int MAX_TABLA2 = MAX_TABLA*2;
- T* tabla2 = new T[MAX_TABLA2];
- for (int j=0;j<=MAX_TABLA;j++)
- {
- tabla2[j]=tabla1[j];
- }
- tabla2[MAX_TABLA+1]=d;
- numElem++;
- MAX_TABLA = MAX_TABLA2;
- tabla = tabla2;
- delete tabla2;
- tabla2 = NULL;
- }
- }
- template <class T>
- bool Tabla<T>::pop(T& d)
- {
- int i=0;
- while (i<numElem) do
- {
- if (tabla[i]==NULL)
- {
- //elimina el elemento de la posicion i-1
- //porque seria el ultimo y poner un return true
- //para que se salga del metodo
- }
- else
- i++;
- }
- if (i==numElem)
- {
- //elimina el elemento en la posicion numElem y return true
- }
- }
- template <class T>
- bool Tabla<T>::dameElem(int i, T& v) const
- {
- if ((i<0)||(i>numElem))
- return false;
- else
- {
- v = tabla[i];
- return true;
- }
- }
Add Comment
Please, Sign In to add comment