Skip to content
Extraits de code Groupes Projets
Valider f3d4096a rédigé par Laurent Paucot's avatar Laurent Paucot
Parcourir les fichiers

linkedlist

parent 8d73ece3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -13,7 +13,10 @@ test.o : test.c run.h
clean :
rm -rf *.o
rm -rf *.o
mrproper: clean
rm -rf run
prog : run
./run
\ No newline at end of file
# lepl1503-2020-groupe-M2
Pour compiler et exécuter (tester) le programme : make prog mrproper
......@@ -18,64 +18,72 @@ int is_prime(int number) { // Vérifie si number est un nombre premier. Return 1
return 1 ; //sinon => VRAI
}
int* prime_divs(int number){
typedef struct node{
int value;
struct node *next;
}node_t;
int *ptr;
ptr = malloc(sizeof(int)*number);
ptr[0] = 0;
ptr[1] = 0;
typedef struct queue{
struct node *tail;
int size;
}queue_t;
int i;
int len = 0;
int enqueue(queue_t* q, int val){
for (i = 2; i < number; i++){
if (is_prime(i) == 1 && is_div(number, i)){
ptr[i] = i;
len++;
}
else
{
ptr[i] = 0;
}
struct node new_node;
new_node.value = val;
}
ptr[i] = -1;
int *result;
result = malloc(sizeof(int)*len +sizeof(int));
int j =0;
for (int i = 0; ptr[i] != -1; i++)
struct node *ptr;
ptr = malloc(sizeof(node_t));
if (ptr == NULL){return -1;}
*ptr = new_node;
if (q->size == 0)
{
if(ptr[i] != 0){
result[j] = ptr[i];
j++;
}
*q->tail = *ptr;
*ptr->next = *ptr;
}
result[j] = -1;
//free(ptr);
return result;
else{
*ptr->next = *q->tail->next;
*q->tail->next = *ptr;
}
q->size++;
return 0;
}
void afficherListe(int* tab) { // afficher la liste
for (int i = 0; tab[i] != -1; i++)
{
if (tab[i] != 0){
printf("%d\n",tab[i]);
queue_t* prime_divs(int number){
}
}
struct queue new_queue;
new_queue.size = 0;
struct queue *ptr;
ptr = malloc(sizeof(queue_t));
if (ptr == NULL){return NULL;}
*ptr = new_queue;
for (int i = 2; i < number; i++){
if (is_prime(i) == 1 && is_div(number, i)){
int err = enqueue(ptr,i);
if (err == -1){return NULL;}
}
}
int err1 = enqueue(ptr,-1);
if (err1 == -1){return NULL;}
return ptr;
}
int run (char *input,char *output){
FILE *file1 = NULL;
FILE *file2 = NULL;
char chaine[50];
//char chaine[50];
file1 = fopen(input,"r");
if (file1 == NULL){return -1;}
......@@ -86,9 +94,9 @@ int run (char *input,char *output){
return -1;
}
while (fgets(chaine,50,file1) != NULL){
/* while (fgets(chaine,50,file1) != NULL){
int *pr_divs = prime_divs(atoi(chaine));
queue_t *pr_divs = prime_divs(atoi(chaine));
fprintf(file2,"%s ",chaine);
for (int i = 0; pr_divs[i] != -1; i++)
{
......@@ -96,7 +104,7 @@ int run (char *input,char *output){
}
fputc('\n',file2);
}
} */
fclose(file1);
fclose(file2);
......
......@@ -3,8 +3,17 @@
int is_div(int number, int i);
int is_prime(int number);
int* prime_divs(int number);
void afficherListe(int* tab);
typedef struct node{
int value;
struct node *next;
}node_t;
typedef struct queue{
struct node *tail;
int size;
}queue_t;
int enqueue(queue_t* q, int val);
queue_t* prime_divs(int number);
int run (char *input,char *output);
#endif
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter