Lista Circular Em C
Trabalho Escolar: Lista Circular Em C. Pesquise 861.000+ trabalhos acadêmicosPor: rooblles • 25/9/2014 • 1.995 Palavras (8 Páginas) • 857 Visualizações
#include<stdio.h>
#include<stdlib.h>
typedef struct lista{
int valor;
struct lista *prox;
}lista;
int soma(lista *l){
int soma=0;
if(l==NULL){
printf("lista vazia");
return 0;
}else{
lista *p ;//=l->prox;
soma=soma+l->valor;
if(l!=p){
soma=soma+p->valor;
return soma+soma;
}
}
}
lista* insere(lista *l){
if(l==NULL){
l=(lista*)malloc(sizeof(lista));
printf("digite um numero");
scanf("%d",&l->valor);
l->prox = l;
}else{
lista* p;
p=(lista*)malloc(sizeof(lista));
lista *aux=l;
printf("entre com valor");
scanf("%d",&p->valor);
p->prox=l;
while(aux->prox!=l){
aux=aux->prox;
}
aux->prox=p;
l=p;
}
return l;
}
int verifica(lista* l, int n){
if(l==NULL){
return 0;
}else{
lista *p=l;
do{
if(n==p->valor){
return 1;
}
p=p->prox;
}while(l!=p);
}
return 0;
}
void imprimir(lista *l){
lista *aux;
if(l==NULL)
printf("vazia");
else{
aux=l;
do{
printf("%d\n",aux->valor);
aux=aux->prox;
}while(aux!=l);
}
}
int conta_elementos(lista* l){
int aux =0;
if(l==NULL)
return 0;
else{
lista *p=l;
do{
aux++;
p=p->prox;
}while(p!=l);
}
return aux;
}
lista *remover(lista* l,int x){
lista *p=l->prox;
lista *aux=l;
if(l==NULL){
return l;
}else{
/*if(p==NULL)
{
free(aux);
l->prox=l;
return l;
}
else*/
{
while(p->prox!=l){
aux=aux->prox;
p=p->prox;
}
aux->prox=l;
free(p);
return l;
}
}
}
/*lista *ant,*p;
if(l==NULL){
printf("lista vazia");
return NULL;
}else{
ant=l;
p=l->prox;
while(p->valor!=x && p!=l){
ant=p;
...