AprendendoC

Ajuda com lista simplesmente encadeada

3 mensagens neste tópico

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

Editado por BrunoT
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora