Lista encadeada de classe
Script que mostra como usar
uma lista encadeada de classe
(class).
uma lista encadeada de classe
(class).
Descrição
Script que mostra como usar
uma lista encadeada de classe
(class).
uma lista encadeada de classe
(class).
#include <iostream.h>
#include <stdlib.h>
static int total = 0; /* Numero total de unidades */
class unidades {
int numero; /* Nº Unidade */
public:
unidades(); /* Construtor padrao */
unidades(int); /* Construtor sobrecarregado */
void aloca_proximo(); /* Construtor da proxima unidade */
void aloca_proximo(int); /* Construtor da proxima unidade sobrecarregado */
unidades *proximo; /* Proxima unidade */
int acessa_numero() const { return numero; }
void muda_numero(int num) { numero = num; }
};
unidades::unidades()
{
total++;
numero = total;
}
unidades::unidades(int num)
{
total++;
numero = num;
}
void unidades::aloca_proximo()
{
proximo = (unidades *) malloc(sizeof(unidades));
total++;
proximo->numero = total;
}
void unidades::aloca_proximo(int num)
{
proximo = (unidades *) malloc(sizeof(unidades));
total++;
proximo->numero = num;
}
int main(void)
{
unidades principal;
unidades *aux;
cout << principal.acessa_numero() << endl;
principal.aloca_proximo();
principal.proximo->muda_numero(2);
cout << principal.proximo->acessa_numero() << endl;
aux = &principal;
cout << aux->acessa_numero() << endl;
cout << aux->proximo->acessa_numero() << endl;
aux->muda_numero(10);
cout << principal.acessa_numero() << endl;
cout << aux->acessa_numero() << endl;
aux = aux->proximo;
aux->muda_numero(20);
cout << principal.proximo->acessa_numero() << endl;
cout << aux->acessa_numero() << endl;
aux->aloca_proximo();
aux = aux->proximo;
aux->muda_numero(3);
cout << aux->acessa_numero() << endl;
aux = &principal;
cout << principal.acessa_numero() << endl;
cout << aux->acessa_numero() << endl;
aux = aux->proximo;
cout << principal.proximo->acessa_numero() << endl;
cout << aux->acessa_numero() << endl;
aux = aux->proximo;
cout << aux->acessa_numero() << endl;
cout << principal.proximo->proximo->acessa_numero() << endl;
aux->aloca_proximo();
aux = aux->proximo;
cout << aux->acessa_numero() << endl;
return 0;
}