Skip to content

Instantly share code, notes, and snippets.

@werbet
Created November 26, 2015 01:05
Show Gist options
  • Save werbet/cf004c7f5d85e926d911 to your computer and use it in GitHub Desktop.
Save werbet/cf004c7f5d85e926d911 to your computer and use it in GitHub Desktop.
Deleção em Listas
#include <cstdlib>
#include <iostream>
#include <stdlib.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 setValor(int valor)
{
this->valor = valor;
}
int getValor()
{
return this->valor;
}
void setProximo(No* proximo)
{
this->proximo = proximo;
}
No* getProximo()
{
return this->proximo;
}
};
int main(int argc, char *argv[])
{
No* primeiro = new No(10);
No* segundo = new No(11);
No* terceiro = new No(12);
No* ultimo = new No(13);
primeiro->setProximo(segundo);
segundo->setProximo(terceiro);
terceiro->setProximo(ultimo);
ultimo->setProximo(NULL);
No* atual = primeiro;
atual = primeiro;
while(atual != NULL)
{
printf("Valor = %d\n", atual->getValor());
atual = atual->getProximo();
}
int p = 13;
atual = primeiro;
No* anterior = NULL;
while(atual != NULL)
{
if(anterior == NULL)
{
if(atual->getValor() == p)
{
printf("Achei o P, cujo no eh: %d\n", atual->getValor());
primeiro = atual->getProximo();
delete atual;
break;
}
}
else
{
if(atual->getValor() == p)
{
printf("Achei o P, cujo no eh: %d\n", atual->getValor());
anterior->setProximo(atual->getProximo());
delete atual;
atual = anterior->getProximo();
break;
}
}
anterior = atual;
atual = atual->getProximo();
}
printf("-----------------------------------------------------------\n");
atual = primeiro;
while(atual != NULL)
{
printf("Valor = %d\n", atual->getValor());
atual = atual->getProximo();
}
system("PAUSE");
return EXIT_SUCCESS;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment