Questions de révision finale pour les institutions de données

Questions de révision finale pour les institutions de données

1. Vrai ou faux

1. La table linéaire stockée séquentiellement est accessible de manière aléatoire. (√)


2. Dans la structure de stockage séquentiel de la table linéaire, lors de l'insertion et de la suppression d'éléments, le nombre d'éléments déplacés est lié à la position de l'élément. (√)


3. La caractéristique fondamentale de la structure linéaire est que chaque nœud a au plus un prédécesseur direct et un successeur direct (√).


4. La structure de stockage linéaire de la table linéaire est meilleure que la structure de stockage de la liste chaînée. (X)


5. La soi-disant file d'attente circulaire se réfère à la structure de stockage de la file d'attente est une liste liée circulaire (X).


6. Après avoir converti un arbre en arbre binaire, le nœud racine de cet arbre binaire n'a pas de sous-arbre droit (√).
Insérez la description de l'image ici
Analyse: lorsque l'arborescence est transformée en un arbre binaire, le sous-arbre gauche du nœud est le nœud enfant d'origine et le sous-arbre droit est le nœud frère d'origine. Autrement dit, l'enfant gauche du nœud racine est connecté à son nœud frère à droite (les nœuds du même niveau ne sont pas connectés les uns aux autres) et son sous-arbre est supprimé, sauf pour l'enfant gauche, la ligne d'origine connectée au nœud racine est effacée. De cette façon, le nœud racine n'a pas d'enfant droit, car le sous-arbre gauche d'un nœud A de l'arbre binaire transformé à partir de l'arbre est l'enfant de A lorsqu'il était à l'origine l'arbre, et son sous-arbre droit est son frère


7. Si un nœud d'un arbre binaire complet n'a plus d'enfant, il doit s'agir d'un nœud feuille. (√)

Analyse: La numérotation de l'arbre binaire complet est de haut en bas, de gauche à droite, donc si un nœud n'a pas d'enfant gauche, il ne doit pas y avoir d'enfant droit. C'est le nœud feuille.


8. Dans la séquence de parcours de précommande de l'arborescence binaire, tout nœud se trouve devant son nœud de sous-arbre. (√)


9. La séquence de parcours de précommande et de post-ordre de l'arbre binaire peut déterminer de manière unique l'arbre binaire. (X)

解析:1.这里需要注意的是,两个序列中必须有一个中序序列才可以。 前序和后续组合无法确定唯一二叉树.
      2.给出一个中序序列,再给一个前序或后续序列,则可以确定一个个唯一的二叉树。

10. Dans un graphe non orienté, le nombre d'arêtes est la somme des degrés des nœuds. (X)

Analyse: est la somme des degrés divisée par 2;


11. La matrice de contiguïté du graphe doit être une matrice symétrique. (X)


12. La recherche séquentielle n'exige pas que les codes clés soient en ordre. (√)


Deux questions à choix multiples

  1. L'algorithme informatique fait référence à (C), il doit avoir des caractéristiques d'entrée, de sortie et (F) 5.
    UNE. Méthode de calcul
    B. Méthode de tri
    C.Séquence finie d'opérations pour résoudre le problème
    RÉ. Méthode de planification
    E. Faisabilité, portabilité et évolutivité
    F.Faisabilité, certitude et finitude
    G. Certitude, finitude et stabilité
    H. Lisibilité, stabilité et sécurité

  1. Le but de l'analyse d'algorithme est (C), et les deux principaux aspects de l'analyse d'algorithme sont (E).
    UNE. Donner la rationalité de la structure de données
    B. Étudiez la relation entre l'entrée et la sortie dans l'algorithme
    C.Analyser l'efficacité de l'algorithme d'amélioration
    RÉ. La facilité de compréhension et de documentation de l'algorithme d'analyse
    E.Complexité spatiale et complexité temporelleF. Exactitude et concision
    G. Lisibilité et documentation H. Complexité des données et complexité du programme

  1. La principale différence entre l'algorithme et le programme est que l'algorithme doit satisfaire (D).
    A, avancé B, correction C, haute efficacité D,Pauvreté

  1. Si une table linéaire non ordonnée de longueur n adopte une structure de stockage séquentielle, le nombre moyen de mouvements pour y insérer un élément est (C).
    A, n B, (n-1) / 2 C,n / 2 D 、 (n + 1) / 2

  1. Une liste liée circulaire unique avec un nœud d'en-tête prend d'abord le pointeur d'en-tête, puis le champ de pointeur de la liste liée. La condition pour que la liste liée soit vide est (B).
    A, premier -> suivant = = premier B, premier -> suivant = = NULL
    C, premier = = NULL D, premier! = NULL

  1. Dans la liste à liaison unique, si vous souhaitez insérer un nœud pointé par le pointeur q après le nœud pointé par le pointeur p, et définir le champ suivant pour stocker le pointeur, la série d'instructions exécutées est (B).
    A, p -> suivant = q -> suivant; q = p;
    B, q -> suivant = p -> suivant; p -> suivant = q;
    C, p-> suivant = q -> suivant; q -> suivant = p;
    D, p -> suivant = q; q -> suivant = p -> suivant;

  1. En supposant que les pointeurs de tête et de queue d'une file d'attente de séquence circulaire sont respectivement avant et arrière, et que la taille de l'espace de stockage est n, la condition pour juger que la file d'attente est vide est (B).
    A, (avant + 1)% n = = arrière B, avant = = arrière
    C, (arrière + 1)% n = = avant D, avant = = 0
    Insérez la description de l'image ici

8. Si un arbre binaire complet avec n nœuds est stocké dans un tableau unidimensionnel avec les numéros d'indice 0, 1,…, n-1 dans l'ordre de parcours hiérarchique, définissez l'indice d'un nœud comme k (k> = 0), si son enfant gauche existe, l'indice de son nœud enfant gauche est (C).
A, 2k-1 B, 2k C, 2k + 1 D, 2k + 2


  1. L'arbre binaire obtenu par la conversion équivalente d'un arbre est appelé l'arbre binaire correspondant à l'arbre. La conclusion suivante est correcte (A).
    A. La première séquence de parcours de racine de l'arbre est la même que la séquence de parcours précédente de l'arbre binaire correspondant.
    B. La première séquence de parcours de racine de l'arbre est la même que la séquence de parcours d'ordre médian de l'arbre binaire correspondant.
    C. La séquence de parcours de racine arrière de l'arbre et la séquence de parcours précédente de l'arbre binaire correspondant Le même
    D, la séquence de traversée post-racine de l'arbre est la même que la séquence de traversée post-ordre de l'arbre binaire correspondant

  1. Comme indiqué sur la droite, un graphe non orienté composé de 7 sommets, à partir du sommet 1, la séquence de sommets impossible à obtenir par traversée en profondeur est (D).
    A, 1245367 B, 1467253
    C, 1342765 D, 1534267
    Insérez la description de l'image ici

  1. La complexité temporelle de l'algorithme pour connecter une liste chaînée simple de longueur m à une liste chaînée simple de longueur n est (B).
    UNE. O (m + n) BO (n) CO (m) D. (m * n)

  1. Dans un graphe orienté avec 10 sommets, la différence entre la somme des en-degrés de tous les sommets et la somme des hors-degrés de tous les sommets est (C).
    UNE. 10 B.20 C. 0 D.5

  1. L'adresse de stockage du premier élément d'une table linéaire est 100, et la longueur de chaque élément est 2, puis l'adresse du cinquième élément est (B).
    A. 110 B. 108 C. 100 D. 120

  1. Dans un arbre binaire complet avec n (n> l) nœuds, le nœud enfant gauche (C) du nœud i (2i> n)
    A. C'est 2i B. Est 2i + 1
    C. Il n'y a pas de D. Est 2i-l
    Insérez la description de l'image ici

  1. L'arbre binaire est numéroté consécutivement à partir de 1, exigeant que le nombre de chaque nœud soit supérieur au nombre de ses enfants gauche et droit. Parmi les enfants gauche et droit du même nœud, le numéro de son enfant gauche est inférieur au nombre de son enfant droit, alors (C) L'ordre du numéro de réalisation de la traversée.
    UNE. Premier ordre B.Ordre du milieu C. Post-ordre D. Traversée hiérarchique depuis la racine

  1. La recherche binaire nécessite le nœud (A).
    UNE. Stockage séquentiel ordonné B. Stockage ordonné et lié
    C. Stockage séquentiel non ordonné D. Stockage lié non ordonné

  1. Il y a 100 éléments et le nombre maximum de comparaisons est (D) lors de la recherche par la méthode de recherche binaire.
    UNE. 25 B. 50 C. 10 D. sept

  1. Il y a une pile, l'ordre des éléments dans la pile est abcde et le milieu de la pile peut être sorti. Il est impossible d'obtenir une séquence pop (C):
    A. abcde B. edcba C. décab D. dceba

  1. Supposons que T est un arbre de Huffman avec 5 nœuds feuilles, et que la hauteur de l'arbre T peut aller jusqu'à (D).
    UNE. 2 B. 3 C. 4 D. 5

Une analyse:
Insérez la description de l'image ici


  1. Comme le montre la figure, si le graphe est parcouru selon la méthode de recherche en largeur d'abord à partir du sommet a, une séquence de sommets possible est (B).
    UNE. abcedf B. abcefd C. abedfc D. acfdeb
    Insérez la description de l'image ici

Trois. Questions à réponse courte

1. On sait que la séquence post du nœud d'un arbre binaire est BDCGFEA, et la séquence médiane est BCDAEGF.
(1) Dessinez l'arbre binaire, (2) trouvez la séquence de parcours de précommande.

Analyse (1)
Insérez la description de l'image ici
(2) ACBDEFG


2. Supposons que la probabilité d'occurrence de 8 caractères de A à H soit: w = {0,10, 0,16, 0,01, 0,02, 0,29, 0,10, 0,07, 0,25}, concevoir le code binaire optimal et calculer la longueur de chemin pondérée WPL.

Insérez la description de l'image ici
A : 101
B : 001
C : 00000
D : 00001
E : 01
F : 101
G : 0001
H : 11

WPL = 3 × (0,1 + 0,16 + 0,1) + 5 × (0,01 + 0,02) + 2 × (0,29 + 0,25) + 4 × 0,07 = 2,59


3. La liste de contiguïté du graphe G est la suivante, et trouvez sa séquence topologique.
Insérez la description de l'image ici
Solution:
Insérez la description de l'image ici
La séquence topologique est la suivante (non unique):

1 2 4 5 8 9 10 3 6 11 7 12

l 2 4 5 8 9 10 3 7 6 11 12


4. On sait que le graphe non dirigé G est le suivant, veuillez écrire la séquence de sommets obtenue à partir du sommet 1 et parcourue par l'algorithme de recherche en profondeur d'abord.
Insérez la description de l'image ici
Solution:
1 4 5 2 3 7 6 8 9
1 7 8 9 6 2 3 5 4


5. Un graphe connecté dirigé avec 41 arcs a au moins combien de sommets et au plus combien de sommets? Un graphe dirigé déconnecté avec 41 arcs a au moins combien de sommets? Pourquoi?

Points de connaissance

Insérez la description de l'image ici
Solution:

Un graphe orienté avec 6 sommets a au plus 6 × (6-1) = 30 arcs, c'est-à-dire un graphe complet orienté.
De toute évidence, un graphe connexe dirigé avec 41 arcs a au moins 7 sommets. Il y a au plus 41 sommets, qui sont connectés en un anneau.

Un graphe orienté non connecté avec 41 arcs a au moins 8 sommets, dont 7 sommets constituent un composant fortement connecté, plus un sommet isolé.


6. Dessinez la forêt correspondant à la séquence connue suivante:
la séquence d'accès de premier ordre de la
forêt est: ABCDEFGHIJKL, la séquence d'accès d'ordre intermédiaire de la forêt est: CBEFDGAJIKLH.

Comment manger:
(1) À partir du nœud racine, si le bon enfant existe, supprimez la connexion avec le bon nœud enfant. Vérifiez à nouveau l'arbre binaire séparé, si le bon enfant du nœud racine existe, supprimez-le continuellement. Jusqu'à ce que toutes ces connexions entre le nœud racine et le bon enfant soient supprimées.
(2) Convertissez chaque arbre binaire séparé en un arbre.
(3) L'enfant gauche ne bouge pas et l'enfant droit devient l'enfant droit de la racine grand-père
Insérez la description de l'image ici


7. La matrice de contiguïté du graphe G est la suivante:
Insérez la description de l'image ici
essayez de dessiner le graphe et utilisez l'algorithme de Kruskal pour construire un arbre couvrant minimum.

Solution:
Insérez la description de l'image ici


8. Déterminez si la séquence suivante est un tas (gros tas de racines ou petit tas de racines). Sinon, ajustez-le à un tas (gros tas de racines ou petit tas de racines).
(43, 5, 47, 1, 19, 11, 59, 15, 48, 41)

序列不是堆。注意要从排无序堆开始,从最后一个非终端结点开始,自下而上调整。

Insérez la description de l'image ici


9. Utilisez l'algorithme de Dijkstra pour trouver le chemin le plus court de V1 à V6 dans la figure ci-dessous et calculez le changement du tableau D à chaque étape de l'exécution de l'algorithme. (D [i] représente la longueur de chemin la plus courte de V1 à chaque sommet actuellement trouvé)

Insérez la description de l'image ici


Quatre. Questions algorithmiques

1. Supposons que la structure de données de la table linéaire la stockée séquentiellement soit définie comme suit. Ecrivez un algorithme pour supprimer tous les éléments de données avec la valeur x dans la.

typedef struct{
    
    
	DataType  list [ Maxnum ];
	int  length;
}SeqList;
void  DeleteSeqList ( SeqList  *la , DataType  x ){
    
    
	for ( j = 0 ; j < la -> length ; j++ ){
    
    
		if ( la -> list[ j ] = = x ){
    
    
	for ( k = j ; k < la -> length – 1 ; k++ )
		la -> list [ k ] = la -> list [ k+1 ];
la -> length --;
j --;
}
}
}

2. Écrivez un algorithme récursif pour trouver la valeur du nœud à la kème position dans la séquence de précommande dans l'arbre binaire.

typedef struct Node{
    
    
	char data ;
	struct Node *lchild , * rchild ;
}BinNode , * BinTree ;
void preorder(BinTree root , int *pnum , int k , int *tag ){
    
    
	/* preorder visit bittree and output the NO.k node */
	if ( root ! = NULL ){
    
    
		( *pnum ) ++ ;
		if ( *pnum = = k){
    
    
			printf ( "\nThe NO.%d node by preorder is %c." , k , root->data ) ;
			*tag = 1 ;
		}
		preorder ( root->lchild , pnum , k , tag ) ;
		preorder ( root->rchild , pnum , k , tag ) ;
	}

Personnellement, j'estime qu'il manque une étape à l'algorithme, bien qu'il puisse répondre aux exigences, il y a encore des domaines à optimiser.

Je suppose que tu aimes

Origine blog.csdn.net/Touale/article/details/112955352
conseillé
Classement