Quiz Set, Multiset, Map et Multimap
Soit un arbre binaire de recherche dont le parcours pré-ordonné est
5 1 3 2 4 7 6
Effectuez un parcours pré-ordonné qui affiche la taille (nombre d'éléments) des sous-arbres dont chaque noeud de l'arbre est la racine.
Par exemple, pour l'arbre
3
/ \
1 2
la taille du sous-arbre de la racine est de 3 et celle des deux feuilles de 1, on affiche donc 3 1 1 dans l'ordre pré-ordonné
7 4 3 1 1 2 1
Soit un arbre binaire de recherche dont le parcours pré-ordonné est
5 1 3 2 4 7 6
Effectuez un parcours pré-ordonné qui affiche la hauteurs des sous-arbres dont chaque noeud de l'arbre est la racine. On considère que la hauteur d'une feuille est de 1.
Par exemple, pour l'arbre
3
/ \
1 2
la hauteur du sous-arbre de la racine est de 2 et celle des deux feuilles de 1, on affiche donc 2 1 1 dans l'ordre pré-ordonné
4 3 2 1 1 2 1
Soit un arbre binaire de recherche dont le parcours pré-ordonné est
5 1 3 2 4 7 6
Cet arbre est-il équilibré ?
Si oui, répondre oui
Si non, donner la liste des clés des noeuds ou l'on mesure un déséquilibre
1
Soit un arbre binaire de recherche dont le parcours pré-ordonné est
5 1 3 2 4 7 6
On applique l'algorithme d'équilibrage par linéarisation / arborisation
Donnez le parcours pré-ordonné de l'arbre résultant
4 2 1 3 6 5 7
Qu'affiche le code suivant ?
vector<int> v { 3,3,2,4,1,2,2 };
set<int> s(v.begin(),v.end());
for(auto i : s) {
cout << i ;
} 1234
Qu'affiche le code suivant ?
vector<int> v { 3,3,2,4,1,2,2 };
multiset<int> s(v.begin(),v.end());
for(auto i : s) {
cout << i ;
} 1222334
Qu'affiche le code suivant ?
vector<int> v { 3,3,2,4,1,2,2 };
map<char,int> s;
for(auto i : v) {
s['A' + i] = i % 3;
}
for(auto i : s) {
cout << i.first << i.second ;
} B1C2D0E1
Qu'affiche le code suivant ?
vector<int> v { 3,3,2,4,1,2,2 };
multimap<char,int> s;
for(auto i : v) {
s.insert(make_pair(char('A'+i),5-i));
}
for(auto i : s) {
cout << i.first << i.second ;
} B4C3C3C3D2D2E1
Quelle est la complexité du code suivant en fonction de la taille N du vecteur v ?
set<int> s(v.begin(),v.end());
for(auto i : s) {
cout << i ;
} Aucune des réponses ci-dessus
Cela dépend du contenu du vecteur.
La complexité varie entre O(n) si tous les éléments sont identiques dans ce cas l'insertion dans l'arbre est en O(1) et O(n * log(n)) si les éléments sont tous différents.
Quelle est la complexité du code suivant en fonction de la taille N du vecteur v ?
multiset<int> s(v.begin(),v.end());
for(auto i : s) {
cout << i ;
} O(n * log2(n))