Skip to content

Instantly share code, notes, and snippets.

@werbet
Last active April 20, 2016 21:37
Show Gist options
  • Save werbet/e685cf166d7d7106dd2ee25a72d3055e to your computer and use it in GitHub Desktop.
Save werbet/e685cf166d7d7106dd2ee25a72d3055e to your computer and use it in GitHub Desktop.
Classe Lista
#include <iostream>
#include <stdio.h>
using namespace std;
class No
{
private:
int valor;
No* proximo;
public:
No()
{
this->valor = -1;
this->proximo = NULL;
}
No(int valor)
{
this->valor = valor;
this->proximo = NULL;
}
void imprimir()
{
printf("Valor = %d\n", this->valor);
}
void setValor(int valor)
{
this-> valor = valor;
}
int getValor()
{
return this->valor;
}
void setProximo(No* proximo)
{
this->proximo = proximo;
}
No* getProximo()
{
return this->proximo;
}
};
class Lista
{
private:
No* primeiro;
public:
Lista()
{
this->primeiro = new No();
}
Lista(int valor)
{
this->primeiro = new No(valor);
}
void inserirInicio(int valor)
{
No* novo = new No(valor);
novo->setProximo(this->primeiro);
this->primeiro = novo;
}
void imprimir()
{
No* aux;
aux = this->primeiro;
while(aux != NULL)
{
aux->imprimir();
aux = aux->getProximo();
}
}
~Lista()
{
No* aux;
aux = this->primeiro;
while(aux != NULL)
{
No* anterior = aux;
aux = aux->getProximo();
anterior->imprimir();
delete anterior;
}
}
};
int main()
{
Lista* lista;
lista = new Lista(0);
lista->inserirInicio(1);
lista->inserirInicio(2);
lista->inserirInicio(3);
lista->inserirInicio(4);
lista->imprimir();
delete lista;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment