Pessoal, preciso de uma ajuda. Fiz uma lista encadeada em C, mas não estou conseguindo fazer a função de remover no inicio. alguém poderia me ajudar a corrigir essa função no meu algoritmo?De resto ta tudo certo, é so essa função de remover que ta dando pau.
#include <stdlib.h>
#include <stdio.h>
typedef struct no{
int num;
struct no *prox;
}No;
No* criar(){
No *novo;
novo=(No*)malloc(sizeof(No));
return novo;
}
No* inicio(No* lista,int dado){
No *novo_no;
novo_no=criar();
novo_no->num=dado;
Pergunta
Prodigy100
Pessoal, preciso de uma ajuda. Fiz uma lista encadeada em C, mas não estou conseguindo fazer a função de remover no inicio. alguém poderia me ajudar a corrigir essa função no meu algoritmo?De resto ta tudo certo, é so essa função de remover que ta dando pau.
#include <stdlib.h>
#include <stdio.h>
typedef struct no{
int num;
struct no *prox;
}No;
No* criar(){
No *novo;
novo=(No*)malloc(sizeof(No));
return novo;
}
No* inicio(No* lista,int dado){
No *novo_no;
novo_no=criar();
novo_no->num=dado;
if (lista==NULL){
lista=novo_no;
novo_no->prox=NULL;
}else{
novo_no->prox=lista;
lista=novo_no;
}
return lista;
}
No* fim(No* lista,int dado){
No *novo_no;
novo_no=criar();
novo_no->num=dado;
if (lista==NULL){
lista=novo_no;
novo_no->prox=NULL;
}else{
No *aux=lista;
while (aux->prox!=NULL){
aux=aux->prox;
}
aux->prox=novo_no;
novo_no->prox=NULL;
}
return lista;
}
void imprimir(No* lista){
No *aux;
aux = lista;
while (aux!=NULL){
printf ("%d \n",aux->num);
aux=aux->prox;
}
}
void removeInicio(No* lista){
if (lista==NULL){
No *aux=lista;
lista=aux->prox;
free(aux);
}
}
int main() {
No *lista=NULL;
lista=inicio(lista,30);
lista=inicio(lista,54);
lista=inicio(lista,15);
removeInicio(lista);
imprimir(lista);
return 0;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.