Lista encadeada de classe

Publicado por Hunz 17/01/2005

[ Hits: 13.889 ]

Homepage: http://tnegri.com/

Download class.cpp




Script que mostra como usar
uma lista encadeada de classe
(class).

  



Esconder código-fonte

#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;
}

Scripts recomendados

Agenda Eletrônica

Obtendo o tempo em C

Retirar ocorrências de uma substring dentro de uma string

média de notas de um aluno

Gerador de CPF


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts