コード例 #1
0
ファイル: main.c プロジェクト: slydevis/Polytech
t_ptr_liste inversionListeADT(t_ptr_liste liste) {
    t_ptr_liste tmp = liste;
    t_ptr_liste buff = creer_vide();
    t_ptr_liste prec = creer_vide();
    
    while(!est_vide(tmp)) {
        prec = tmp;
        tmp = queue_liste(tmp);
        prec->next = buff;
        buff = prec;
    }
    
    return buff;
}
コード例 #2
0
/*@requires: p non NULL, p initalisée
@assigns: rien
@ensures: créée une copie de p*/
pile copier_pile(pile p) {
    pile r = creer_vide();
    r.sommet = p.sommet;

    int i;
    for(i = 0; i <= r.sommet; i++)
        r.t[i] = p.t[i];
    return r;
}
コード例 #3
0
ファイル: main.c プロジェクト: slydevis/Polytech
t_ptr_liste copyListADT(t_ptr_liste liste) {
    t_ptr_liste tmp = liste;
    t_ptr_liste newList = creer_vide();
    
    while(!est_vide(tmp)) {
        newList = ajout_liste(newList, tmp->value);
        tmp = queue_liste(tmp);
    }
    
    return newList;  
}
コード例 #4
0
/*@requires: n >= 0
@assigns: rien
@ensures: renvoie la factorielle de n*/
int factorielle(int n) {
    if(n <= 0)
        return 1;

    pile p = creer_vide();
    empiler(&p, n);

    for(; n > 1; n--)
        empiler_moins_un(&p);

    return produit_pile(p);
}
コード例 #5
0
ファイル: main.c プロジェクト: slydevis/Polytech
t_ptr_liste ajout_liste(t_ptr_liste liste, int val) {
    maillon* mail = (maillon*) malloc(sizeof(maillon));
    mail->value = val;
    mail->next = creer_vide();
    
    if(est_vide(liste))
        return mail;
        
    mail->next = liste;

    return mail;
}
コード例 #6
0
/*@requires: n >= 0
@assigns: rien
@ensures: renvoie la factorielle de n*/
int factorielle2(int n) {
    if(n <= 0)
        return 1;

    pile p = creer_vide();
    empiler(&p, n);
    empiler(&p, n-1);

    for(n = n-1; n > 0; n--)
        empiler_produit_deuxpremierselements(&p);

    depiler(&p);
    return depiler(&p);
}
コード例 #7
0
ファイル: main.c プロジェクト: slydevis/Polytech
t_ptr_liste creationListeADT() {
    int valToAdd = 0;
    t_ptr_liste liste = creer_vide();

    while(valToAdd >= 0) {
        printf("Taper un nombre entier : ");
        scanf("%d", &valToAdd);
        
        if(valToAdd >= 0)
            liste = ajout_liste(liste, valToAdd);
    }
    
    return liste;
}
コード例 #8
0
ファイル: main.c プロジェクト: slydevis/Polytech
int est_vide(t_ptr_liste ptr) {
    return ptr == creer_vide();
}