// file listai.cpp #include #include "listai.hpp" ListaI::ListaI(void) { tamMax = LISTA_I_TAM_MAX; vetor = new int[LISTA_I_TAM_MAX]; noDeElem = 0; } ListaI::ListaI(int tamMax) { ListaI::tamMax = tamMax; vetor = new int[ListaI::tamMax]; noDeElem = 0; } ListaI::ListaI(const ListaI &lista) { tamMax = lista.tamMax; vetor = new int[tamMax]; noDeElem = lista.noDeElem; for (int i=0; i < noDeElem; i++) vetor[i] = lista.vetor[i]; } ListaI::~ListaI(void) { delete[] vetor; } int ListaI::Insere(int elem, int pos) { int i; if ( Cheia() == 0 ) { fprintf(stdout, "ListaI::Insere: erro lista cheia\n"); return 1; } if ( ( pos < 0 )||(pos > Final()) ) { fprintf(stdout, "ListaI::Insere: erro posicao %d invalida\n", pos); return 1; } noDeElem++; for ( i = noDeElem; i > pos; i-- ) vetor[i] = vetor[i-1]; vetor[i] = elem; return 0; } int ListaI::Recupera(int pos) { if ( Vazia()==0 ) { fprintf(stdout, "ListaI::Recupera: erro lista vazia\n" ); return 1; } if ( pos > noDeElem ) { fprintf(stdout, "ListaI::Recupera: erro nao ha' elemento na posicao %d\n", pos); return 1; } return vetor[pos]; } int ListaI::Retira(int pos) { int i; if ( Vazia()==0 ) { fprintf(stdout, "ListaI::Retira: erro lista vazia\n" ); return 1; } if ( pos > noDeElem ) { fprintf(stdout, "ListaI::Retira: erro nao ha' elemento na posicao %d\n", pos); return 1; } noDeElem--; for (i = pos; i < noDeElem; i++ ) vetor[i] = vetor[i+1]; return 0; } int ListaI::Tamanho(void) { return noDeElem; } int ListaI::Final(void) { return noDeElem; } int ListaI::Vazia(void) { if ( noDeElem == 0 ) return 0; else return 1; } int ListaI::Cheia(void) { if ( noDeElem == tamMax ) return 0; else return 1; } void ListaI::Imprime(void) { fprintf(stdout,"ListaI:\n"); for (int i = 0; i < noDeElem; i++) fprintf(stdout, "%d ", vetor[i]); fprintf(stdout,"\n"); } // end of file Listai.cpp