Boa Tarde, Pessoal.
Aqui é o Alison.
Essa é minha primeira postagem no blog, então vamos lá !!!
Serei bem objetivo, estarei logo abaixo disponibilizando código comentado do exemplo de Lista conforme passado na última aula pelo professor.
Algo bem simples mesmo, porém caso tenham dúvidas podem me procurar.
#include< stdio.h > #include< windows.h >
#include< conio.h >
/**
_ _ _
Let's Share \/ \/ \/
* * *
Modelagem de Dados - Profº Jean
Fatec Bauru - Banco de Dados, 3º Semestre
Exemplo de Criação e Manipulação de uma Lista
Data: 28/02/2013
**/
struct no
{
int nValor;
no *pProximo;
}*pCabeca; //Declaração da estrutura pCabeca do tipo "no"
main()
{
int nNum; //Declaração de variável "int"
no *pNovo; //Declaração de variável ponteiro do tipo "no"
no *pAux; //Declaração da variável ponteiro do tipo "no", será utilizada para auxiliar na manutenção da Lista.
pCabeca = NULL; //Criação de uma Lista Vazia
printf("Digite o primeiro valor: ");
scanf("%d",&nNum); //Recebendo o valor via usuário, para ser utilizado na Lista
pNovo = (no*) malloc(sizeof(no)); //Aloca a memória e cria um novo registro, onde pNovo armazena o endereço de memória
//-------____-------
//-------___-> Utiliza-se o "*" a direita, pois faz referência ao tipo de dado a ser alocada a memória (no caso ponteiro)
pNovo->nValor = nNum; //Atribuindo o valor digitado para o campo nValor, pertencente a estrutura e posicionado onde pNovo está apontado
pNovo->pProximo = NULL; //Atribuindo ao ponteiro pProximo o valor NULL. Fim da Lista (último nó)
pCabeca = pNovo; //pCabeca aponta para pNovo, que consequentemente aponta para primeiro elemento. Utilizado apenas uma vez, sem alteração
printf("\nDigite o segundo valor: ");
scanf("%d",&nNum); //Recebendo novo valor via usuário, reaproveitando a variável
pNovo = (no*) malloc(sizeof(no)); //Criação de novo registro, alocando a memória necessária
pNovo->nValor = nNum; //Atribuindo o valor digitado
pNovo->pProximo = NULL; //Atribuindo NULL, pois representa o fim da Lista
pCabeca->pProximo = pNovo; //Ligação dos elementos da Lista, onde pProximo recebe o endereço de memória de pNovo. Ou seja, conseguimos
//acessar o valor digitado
pAux = pCabeca; //Atribuir pCabeca a pAux, ou seja, o inicio da Lista.
printf("\n\nPercorrendo a Lista e exibindo os valores \n\n ");
while(pAux != NULL) //Percorre pAux, com o intuito de impressão do conteúdo de nValor
{
printf("\n%d ",pAux->nValor);
pAux = pAux->pProximo; //Atribui o próximo endereço de memória da Lista, com o intuito de percorrer a estrutura;
}
getch();
}
Fiquem na paz... Até mais...
Atenciosamente, Alison Lemes.
Parmera ein kkkk \o~~ Negocio é bem complexo vai dar trabalho ;DDD
ResponderExcluirrsrsr... boa Sr. Lemes Leite... porém no Linux, da alguns pauls, por causa da windows.h, no link abaixo mostra um exemplo feito em linux, pra quem também tiver interesse...
ResponderExcluirhttp://ipfix.wordpress.com/2007/05/03/lista-encadeada-em-c/