SdevLab – Exemplo de Código | Listas Ligadas em C/C++

Eae galera!

Mais um código sobre listas ligadas em C/C++. Vamos ao post!

Listas Ligadas em C/C++

Resumindo em poucas palavras, o código abaixo é uma agenda, mas para armazenar os dados, além das informações dos contatos vamos adicionar um novo parâmetro na struct, que é um ponteiro que aponta para o próximo contato do usuário.

O conceito que usamos para montar esta estrutura de dados se chama Lista Ligada ou Lista encadeada, onde cada elemento aponta para o próximo elemento da lista, e o último elemento aponta para NULL, que sabemos ser o último elemento da lista.

O que vem de novidade neste código são as funções push e pop, que servem para adicionar e remover um elemento da lista respectivamente, o restante do código não contem nenhuma novidade.

Segue o código:


#include <iostream>
using namespace std;
struct no
{
char nome[200];
int tel;
no* next;
};
typedef no* noptr;
void push (noptr &s, int x, char a[])
{
no *p;
p = new no;
p->tel = x;
strcpy(p->nome,a);
if (s == NULL)
p->next=NULL;
else
p->next = s;
s=p;
};
void pop (noptr &lista, int &tele, char nomeA[])
{
no *p;
if (lista == NULL)
cout << "Lista vazia";
else
{
p=lista;
lista = p-> next;
tele = p-> tel;
strcpy(nomeA,p-> nome);
delete p;
}
};
int main()
{
int ver2; // verifica se o usuario deseja excluir um contato
int ver=1; // verifica se o usuario deseja adicionar um contato
int y; //y é o telefone do contato
char contato[200];
noptr lista = NULL;
while (ver == 1)
{    cout << "Entre com o telefone do seu contato." << endl;
cin.ignore();
cin >> y;
cout << "Entre com o nome do seu contato." << endl;
cin.ignore();
cin.getline(contato,200);
push(lista,y,contato);
cout << "Digite 1 para armazenar outro contato,
2 para sair ou 3 para deletar um contato." << endl;
cin >> ver;
ver2=ver;
if (ver2 == 3)
{
pop(lista, y, contato);
cout << contato << endl;
cout << y << endl;
cout << "Deseja deletar outro contato? 2 para sair ou 3 para deletar!" << endl;
}
}
system("Pause");
}

Até a próxima!
😉

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s