Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

nuno_tavares_sjm

Listas Circulares

Mensagens Recomendadas

nuno_tavares_sjm

Boas pessoal, gostaria de saber se alguém tem um programa em C que trabalhe com listas circulares, que tenha funções que nos permita adicionar um elemento, remover um elemento, procurar um elemento, imprimir a lista.

Eu sei que o raciocínio é mesmo que uma lista duplamente ligada, e como ela funciona só queria averiguar um codigo de outro para ver os meus erros.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

lá por seres meu conterrâneo não quer dizer que vais apanhar com a papinha toda feita ...

vamos fazer o contrário, se tens erros, apresenta-os aqui, assim como o código relevante para esses mesmos erros, então ai, o teu código será corrigido


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nuno_tavares_sjm

Eu apenas tenho o codigo de funções para uma lista duplamente ligada, pois o professor no teste apenas vai pedir a implementação de funções, gostaria de saber o que posso alterar para isto se tornar uma lista circular.

#include<stdio.h>
#include<stdlib.h>
typedef struct nodo
{
struct nodo *next,*prev;
int num;
}node;
node *criarElemento(int data)
{
node *p=(node*)malloc(sizeof(node));
if(p!=NULL)
{
p->num=data;
p->next=NULL;
}
return p;
}
node *adicionar (node *lista,int x)
{
node *p=criarElemento(x);
if (p==NULL) return lista;
p->next=lista;
return p;
}
node *remover (node *lista, node *r)
{
if(r->prev!=NULL)
(r->prev)->next=r->next;
else
lista=r->next;
if (r->next!=NULL)
(r->next)->prev=r->prev;
free(r);
}
node *procurar(node *lista, int x)
{
node *p=lista;
while((p!=NULL)&&(p->num!=x))
p=p->next;
return p;
}

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.