1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
#include <stdio.h>
#include <stdlib.h>
#include <memoire.h>
#include "tas.h"
#define BLOC 4
struct tas{
int dernier;
int taille_physique;
int *arbreBinaire;
};
typedef struct tas *tas;
tas
creerTas(void){
tas tas_cree=memoire_allouer(sizeof(struct tas));
tas_cree->dernier=0;
tas_cree->taille_physique=BLOC;
tas_cree->arbreBinaire=memoire_allouer(BLOC*sizeof(int));
return tas_cree;
}
void
libererTas(tas T)
{
memoire_liberer(T->arbreBinaire);
memoire_liberer(T);
}
void
agrandirTas(tas T)
{
while(T->dernier >= T->taille_physique)
T->taille_physique += BLOC;
memoire_reallouer(T->arbreBinaire, T->taille_physique *sizeof(T->arbreBinaire));
}
void
insererValeur(tas T, int valeur)
{
if(T->dernier >= T->taille_physique)
agrandirTas(T);
T->arbreBinaire[T->dernier]=valeur;
T->dernier=(T->dernier)+1;
/*T->arbreBinaire[T->dernier]=valeur;*/
}
void
afficheTas(tas T)
{
int nombre_element=T->dernier;
for (int i=0; i < nombre_element; i++)
printf("%d ", T->arbreBinaire[i]);
printf("\n");
}
int
main(int argc, char * argv[])
{
tas T=creerTas();
insererValeur(T,5);
insererValeur(T,7);
insererValeur(T,5);
insererValeur(T,7);
insererValeur(T,5);
insererValeur(T,7);
insererValeur(T,5);
insererValeur(T,7);
insererValeur(T,5);
insererValeur(T,7);
insererValeur(T,5);
insererValeur(T,7);
afficheTas(T);
printf("Taille physique= %d \n", T->taille_physique);
libererTas(T);
return EXIT_SUCCESS;
} |
Partager