0% ont trouvé ce document utile (0 vote)
13 vues5 pages

Hasbi

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1/ 5

+pour la structure de données tableau d enregistrements, ses elements peuvent etre de type different:

a) Vra

b)Faux

+Pour insérer un nœud directement dans une liste chaînée, on doit avoir son adresse : a)Vrai

b)faux

+Dans le cours, nous avons vu différentes structures de données, et ainsi que les algorithmes
permettant d’effectuer le retrait d’une donnée dans celle-ci, dans une structure de FILE, identifiery
quel sera l’element qu’on peut retirer parmi les choix ci-dessous :

a) le dernier élément insérer

b) le premier element inséré

c) un élément quelconque

d) le plus grand élément

e)l’element du milieu

f)le plus petit element

+on souhaite gérer une population composée de plusieurs familles. Chaque


famille est composée en plus de son nom, de :
-deux parents ou un seul (si l’un est décède) ou aucun parent (si les deux
sont décèdes)
-un ou plusieurs enfants
Quelle structure de données est appropriée ?
a) liste a simple chainage

b) aucune des reponses

c) liste de listes

d) une file dynamique

e) un tableau de structures

+Dans cours, avons vu différentes structures de donnes et ainsi que les algorithmes
permettant d’effectuer le retrait d’une donnée dans celle-ci dans une structure de FILE, identifiez
quel sera l’element qu’on peut retirer parmi les choix ci-dessous :

a) le dernier element insère


b) le plus petit element

c) le plus grand element

d)l’element du milieu

e) un element quelconque

f) le premier element inséré

´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
+Pour supprimer un nœud dans une liste chainée, on doit absolument avoir :

a) sa valeur

b) l’une des autres reponses

c) sa position

d) son adresse

si il nous demande de choisir plusieurs reponses on choisit c) et d)

+Pour insérer un nœud dans une liste doublement chainée, il suffit d’avoir son adresse : a)Vrai

b) Faux

+Dans le cours, nous avons vu différentes structures de données, et ainsi que les algorithmes
permettant d’effectuer le retrait d’une donnée dans celle-ci. Dans une structure d’arbre de recherche
binaire (ARB), identifiez quel sera l’élément qu’on peut retirer parmi les choix ci-dessus :

a) le dernier element inséré

b) le premier element inséré

c) un element quelconque

d) le plus petit element

e) le plus grand element

f)l’element au milieu

+Pour accéder a un nœud dans une liste chainée, on doit avoir :

a) sa valeur

b) l’une des autres réponses

c) sa position

d) son adresse
+Pour insérer un nœud dans une liste chaînée, il suffit d avoir soit son adresse, soit sa position, soit
sa valeur :

a) Vrai

b) faux

+dans une liste chainee,etant donnee sa tete de liste, on peut acceder directement a un noeud si on a:

a) sa valeur

b) sa position

c) son adresse

d) toutes les reponses sont justes

´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
EXERCICE:
structnode { TElement value ;

struct node *left ; struct

node *right ;} ;

typedef struct node tree ; int

F1(tree *R)

{return(R==NULL) ;}

*/vérifie si un arbre est vide ou non tree

*F2(tree *R)

{return(R->left) ;}

*/retourne un pointeur sur le sous arbre gauche d’un arbre tree

*F3(tree *R)

{return(R->right ) ;}

*/retourne un pointeur sur le sous arbre droit d’un arbre int

F4(tree *R)

{return( !R->right && !R->left) ;}

*/verifie si un nœud est une feuille ou non (retourne True si c’est une feuille) int

F5(tree *R)

{ if (F1(R)) return 0 ; Else

if (F4(R)) return 1 ;

Else return F5(F2(R)) + F5(F3(R)) ;}


*/retourne le nombre de feuilles d’un arbre Int

F6(tree *R){

If (F1(R)) return 0 ; Else

if (F4(R)) return 0 ;

Else return 1+F6(F2(R)) + F6(F3(R)) ;}

*/retourne le nombre de nœuds internes Int

F7(tree *R){

If (R==NULL) return 0 ;

Else return (1+F7(R->left)+F7(R->d)) ;

*/retourne le nombre de nœuds d’un arbre

Void F8(tree *R)

If (R)

{F8(R->left) ;

Printf(‘’%d’’,R->value ) ;

F8(R->right) ;

*/parcourir et afficher les nœuds inorder

´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
Voici la fonction en C Inser_mapile qui insère un nœud dans la pile avec comme valeur le nombre
d'éléments contenus dans la pile jusqu'à son insertion. La fonction retourne l'adresse du sommet de la
pile (mapile) :

pile* Inser_mapile(pile* mapile){


pile* nouveauNoeud = (pile*) malloc(sizeof(pile));
if(nouveauNoeud == NULL){
printf("Erreur : allocation mémoire échouée\n");
exit(EXIT_FAILURE);
}
int count = 0;
pile* temp = mapile;
while(temp != NULL){
count++;
temp = temp->Prec;
}
nouveauNoeud->valeur = count;
nouveauNoeud->Prec = mapile;
mapile = nouveauNoeud;
return mapile;
}

Pour transformer la structure en file (mafile), nous devons ajouter un pointeur vers le dernier élément
de la file. La nouvelle structure est la suivante :

typedef struct mafile{


int valeur;
struct mafile *suivant;
struct mafile *precedent;
} mafile;

mafile *mamafile;
mafile *queue;
Le pointeur suivant pointe vers l'élément suivant dans la file, tandis que le pointeur precedent pointe
vers l'élément précédent dans la file. Le pointeur mamafile pointe vers le premier élément de la file,
et le pointeur queue pointe vers le dernier élément de la file.

Vous aimerez peut-être aussi