• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sign in to follow this  
Followers 0
AprendendoC

Ajuda com lista simplesmente encadeada

3 posts in this topic

Buenas amigos!!

tenho um trabalho pra fazer da faculdade e estou meio com dificuldade em implementar uma função para inserir elementos no final de uma lista encadeada.

Lista* insercaoFinal(Lista* l, int num)
{
 Lista* novo = (Lista*)malloc(sizeof(lista));
 novo -> info = num;
 novo -> prox = NULL;
 return novo;
}

este meu codigo esta a inserir somente um numero ao final da lista...

0

Share this post


Link to post
Share on other sites

errado, a função simplesmente cria um nó da lista e não insere em lado nenhum

necessitas saber qual o local do fim da lista e actualizar os ponteiros para que o nó criado fique relacionado

tens de ter somente em conta que existe dois casos:

- a lista encontrasse vazia, logo o valor de l é um valor vazio

- a lista não se encontra vazia, logo terás de percorrer até ao fim e inserir ai

0

Share this post


Link to post
Share on other sites

Assumindo que essa Lista* l trás o último elemento, que acho que sim ...

Lista* insercaoFinal(Lista* l, int num)
{
	 Lista* novo = (Lista*)malloc(sizeof(lista));
	 novo -> info = num;
	 novo -> prox = NULL;
	 l -> prox = novo;
	 return novo;
}

Se trazes sempre o último elemento contigo, não tens como percorrer a lista toda ... por isso acho que na estrutura de dados devias ter um apontador para o primeiro elemento.

Edited by BrunoT
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0