Estrutura
#include
struct no{//estrutura no int dado; struct no * prox;
};
typedef struct no * lista;
lista init(lista l){ return NULL; //criação da lista
}
//Função para inserir no final da lista lista insere(lista l,int elem){ lista aux,novo;//declaração das listas auxiliares locais aux=l; //auxiliar recebe l novo = (lista) malloc(sizeof(struct no));//alocando espaço novo->dado=elem;//recebendo novo elemento
if(l==NULL){ //condição para inserir o 1° elemento novo->prox=l; l=novo; }else{ while(aux->prox!=NULL)//percorre a lista e insere na ultima posição aux=aux->prox; //lista andando aux->prox=novo; //aponta para o penultimo item novo->prox=NULL; //aponta para último } return l;
}
//Função para mostrar a lista void imprimir(lista l){ if(l==NULL) printf("\nA lista encontra-se vazia.\n"); else while(l != NULL){ printf("%d ", l->dado); l = l ->prox; }
}
//Função para contar o total de elementos que a lista possui int total(lista l){ int cont = 0; if(l==NULL) printf("\nA lista encontra-se vazia.\n"); else while(l != NULL){ cont++; l=l->prox; } return cont;
}
//Função para contar o total de elementos pares que a lista possui int par(lista l){ int cont = 0; if(l==NULL) printf("\nA lista encontra-se vazia.\n"); else while(l != NULL){ if((l->dado % 2)==0) cont++; l=l->prox; } return cont;
}
//Função que retornar o somatório de elementos da lista int somar(lista l){ int calc = 0; if(l==NULL) printf("\nA lista encontra-se vazia.\n"); else while(l != NULL){ calc += l->dado; l=l->prox; } return calc;
}