Você está na página 1de 3

Anne Caroline Muniz Marques

Programa de lista encadeada

#include <stdio.h> //biblioteca


#include <stdlib.h> // biblioteca p/ uso da funo calloc
#define n 49 // variavel n ter o taanho 49

typedef struct modlista { //regisro modlista


int valor;
struct modlista *prox; //ponteiro para o proximo elemento
} *vetor[n], lista, *elo; //um vetor de ponteiro para struct
void inicializa (vetor v){ //inicializa um vetor de ponteiro
elo novo; // ponteiro da struct
int i;
for( i=0; i<49; i++) {
novo = (elo) calloc( 1, sizeof(lista)); // cria um novo n
novo ->valor = i; //armazena o valor i
novo ->prox= NULL; //faz o novo n apontar para NULL
v[i] = novo;
}
}
//funo para alocar elementos no vetor
void inserir (vetor v, int a[], int resto, int p){
elo aux, novo; //declarao de ponteiros da struct
int i=0;

while (v[i]->valor!=resto){ //para encontrar a posio no vetor de ponteiro


i++; //incrementa o i
}
aux = v[i];

//aux est apontando para a chave interrompida

while (aux->prox!=NULL){
aux = aux->prox;

//repetir at encontrar NULL, q


//recebendo proximo at NULL

}
novo = (elo) calloc(1, sizeof(lista)); //criando novo elemento
aux->prox = novo; //aux aponta para novo
novo->prox= NULL;

//novo aponta para nulo

novo->valor = a[p];

//armazena o valor que est na posio

}
//funo para imprimir o vetor
void imprimir (vetor v){
int i=0;
elo aux; //aux do tipo ponteiro da struct
for(i=0; i<n; i++) { //i variando de 0 a 49
aux=v[i];

// aponta aux para a posio i da lista

while (aux->prox!=NULL) { //continua at aux -> prox apontar para


NULL
printf("\n%d", aux->valor); //imprime o elemento
aux=aux->prox; //faz aux apontar para o prximo elemento
while (aux -> prox != NULL){

//verifica s

printf(" = > "); //efeito de formatao


printf ("%d", aux->valor); //imprime o elemento
aux=aux->prox;
elemento
}

//aponta aqux para o prximo

printf(" => ");

//efeito de formatao

printf("%d\n", aux->valor);

//imprime o elemento

}
}
getchar(); //para liberar a memria
getchar();
free(v);
} //fim imprimir
void mod (vetor v, int num) { //declarao do vetor
int a[] = {10,2,3,44,432,35,6576,34,12,54,56,23423,234,23};
int p=0;
int resto;
int i=0;
for (p=0; p<=13; p++){
resto = a[p]%num; //resto a posio no vetor que ser inserido
inserir (v, a, resto, p); //comando a funo inserir
}
imprimir(v);

//chama a funo

}
main (){
vetor v1;
inicializa (v1);

//chama a funo inicializa

int num; //variavel que ser pedida pro usuario digitar


printf("digite um valor inteiro para num:");
scanf("%d", &num);
mod(v1, num);
num como parametro
}

//chama mod passando passandp o vetor e

Você também pode gostar