TP6 - Tri par tas

Informatique - Licence Science & Technique MI, L2.2



Le but de ce TP est de réaliser un algorithme de tri en un temps O( n log n ).
Pour ce faire nous allons implementer une nouvelle structure d'arbre complet partiellement trié, basé sur un tableau.  " Le Tas ". Chaque noeud de l'arbre contient une valeure plus petite que toutes celles de ses fils. Mais aucune information n'est donnée quand a la comparaison entre les deux fils d'un noeud.

On considère la déclaration suivante de la structure classique d'un tas.

      typedef struct {
       int *t;
       int n;
      } tas;

      


Figure 1. Exemple d'insertion d'une suite d'entiers.



Exercice 1- Fonctions de base
Réaliser une fonction d'initialisation d'un tas.
Réaliser une fonction d'insertion d'un entier dans un tas: int insertionTas(tas *t, int n)
la valeur retournée permet de verifier si l'insertion c'est bien déroulée.


Exercice 2- Suppresion dans un tas.
Ecrire une fonction permettant la suppression du premier élément de l'arbre, et qui retourne cette valeur.
Attention : Le tas doit garder toutes ses propriétés....

Exercice 3- Algorithme de tri.
Implémenter une fonction permettant d'ajouter une serie de n entiers dans le tas int insertion (tas *t, int n), en utilisant la fonction precedente.