Faculté des Sciences Exactes Année Universitaire 2015-2016 Département d’informatique Filière : LMD SC S3 Exercices chapitre 3 : Structures linéaires listes, piles et files Exercice 1 : Etant donné une matrice creuse dont plus que la moitié de ses éléments sont nuls. 0 8 0 9 0 0 3 0 0 0 0 14 0 0 2 0 0 0 0 0 0 0 0 0 Pour minimiser la taille de la représentation de cette matrice on choisi de la caractériser par un tableau de listes linéaires, de telle façon à ce que la ième liste linéaire contient les éléments non nuls de la ligne i de la matrice et chacun d'eux est doté du numéro de la colonne où il se trouve. T[0] 8, 1 9, 3 T[1] 3, 0 14, 5 T[2] 2, 2 T[3] Questions: 1. Définir la structure qui sera utilisée pour les cellules des listes linéaires. 2. Ecrire l’algorithme qui transforme une matrice M de taille nm en tableau de listes linéaire comme définit précédemment. 3. Ecrire la fonction qui affiche un élément M[i][j] à partir de T. Exercice 2 : Faire la représentation d’un polynôme à l’aide d’une liste linéaire. En utilisant cette représentation écrire la fonction qui calcule la somme de deux polynômes d’ordres n et m. Exercice 3 : Ecrire l’algorithme qui inverse le contenu d’une liste linéaire. Faire pour cela une fonction itérative et la transformer ensuite en fonction récursive. Exercice 4 : Ecrire la fonction qui supprime toutes les occurrences d’une valeur x dans une liste linéaire. Exercice 5 : Etant données deux listes linéaires dont les valeurs des éléments sont triés. Ecrire la fonction qui fait leur fusion pour obtenir une liste triée également. Exercice 6 : Ecrire la fonction qui dit si une chaîne de caractères x est palindrome ou non. Exercice 7 : 1. Ecrire la fonction récursive non terminale qui fait la somme des valeurs des éléments d’une pile d’entiers. 2. Calculez sa complexité. 3. Transformez-la en fonction récursive terminale. 4. La dérécursiver.