PUCRS
Faculdade de Informática
Programação para Engenharia II



Dada a classe de lista encadeada vista em aula, implemente os métodos descritos a seguir.


class ListaEncadeada{

Pessoa *Busca(string fulano, string endereco)
{
// Crie um método que devolva um ponteiro para um certo elemento da lista.
// Como parâmetro este método deve receber o nome de
// uma pessoa a ser buscada na lista.
// Caso o nome não exista na lista, o método deve devolver NULL
}
Pessoa *BuscaAnterior(string fulano
, string endereco)
{
// Crie um método que devolva um ponteiro para o nodo da lista que
// encontra-se ANTES do nodo que contém um certo elemento da lista.
// Como parâmetro este método deve receber o nome de
// uma pessoa a ser buscada na lista.
// Caso o nome não exista na lista, o método deve devolver NULL.
// Caso o nome seja o primeiro da lista o método deve devolver NULL. O
// ideal é não chamar este quando "fulano" for o 1o. elemento da lista, ou seja,
// deve-se testar isto antes de chamar este métodos 
}
int
 Remove(string Fulano, string endereco)
{

// Crie um método que remova um elemento da lista. 
// Como parâmetro este método deve receber o nome de
// uma pessoa a ser buscada na lista.
// Caso o nome não exista na lista, o método deve devolver 0.
// Caso o nome  exista na lista, o método deve devolver 1.
// Lembre-se de fazer um teste específico para remover o 1o. elemento da
// lista
// O método deve "deletar" o nodo da memória.
// Dica: use o método "BuscaAnterior".
}
Pessoa *RetinaDoInicio()
{
// Crie um método que remova um primeiro elemento da lista. 
// O método deve retornar um apontador para o elemento retirado da lista.
// O método NÃO deve "deletar" o nodo da memória.
// Caso a lista esteja vazia, o método deve devolver NULL.
}
Pessoa *RetinaDoFinal()
{
// Crie um método que remova um último elemento da lista.
// O método deve retornar um apontador para o elemento retirado da lista
// O método NÃO deve "deletar" o nodo da memória.
// Caso a lista esteja vazia, o método deve devolver NULL.
}
Pessoa *Retira(string Fulano, string endereco)
{

// Crie um método que retire um elemento da lista. 
// Como parâmetro este método deve receber o nome de
// uma pessoa a ser buscada na lista.
// Caso o nome não exista na lista, o método deve devolver NULL.
// Lembre-se de fazer um teste específico para remover o 1o. elemento da
// lista
// O método NÃO deve "deletar" o nodo da memória.
// Dica: use o método "BuscaAnterior".
}

void InserePessoaNoInicio(string fulano, string endereco)
{
// Crie um método que coloque um  primeiro elemento da lista. 
// Caso a lista esteja vazia, o método deve devolver NULL.
// O método NÃO deve "deletar" o nodo da memória.
}
};

RESPOSTA

-----------------
FIM