Technology sharing

MMXXV ~ "Data Structure" test quaestiones ~ Postgraduate ostium examen

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Auctor homepage: Zhi Guyun venit de Xiu
Insert imaginem descriptionis hic

  1. Multae electionis quaestiones: Examine notiones praecipuas et praecipuas operationes
  2. Imple in in codicellos: Confirma intellectum core notiones et singula
  3. breviter respondere quaestionesProbate magisterium cognitionis theoricae
  4. Programming quaestionesTest programmandi facultatem et notitia structuram applicatione
  5. Insert imaginem descriptionis hic

Data structurae simulationis voluminis

1. Multiplices quaestiones selectae (2 puncta singula, 20 puncta in total)

  1. Tempus multiplicitatem elementi in aciem inserendi est ().
    A. O (1)
    B. O (n)
    C. O(log n)
    D. O(n^2)

  2. In cumulo modi, tempus intricatas aedificandi acervus maximus est ().
    A. O (n)
    B. O (n log n)
    C. O(log n)
    D. O(n^2)

  3. Lignum rubrum genus est ( ).
    A. The binarii ligno
    B. Libratum ligno binarii
    C. Min acervus
    D. Max tumulus

  4. Quod sequentia de tabulis Nullam falsa est ().
    A. The lookup time complexity of the Nullam table is O(1)
    B. Tempus intricatum Nullam mensae insertio est O (1)
    C. Hash tables propono confligit
    D. Tempus quaerendi multiplicitas mensae detrahendae debet esse O (1).

  5. In graphe traversal, tempus multiplicitas profunditatis primae inquisitionis (DFS) et latitudinis primae inquisitionis (BFS) sunt respective.
    A. O(V + E) et O(V)
    B. O(V^2) et O(V) ;
    C. O(V + E) et O(V + E)
    D. O(V) et O(V^2).

  6. Tempus multiplicitatem conversionis unius modo coniunctionis index est ().
    A. O (1)
    B. O (n)
    C. O(log n)
    D. O(n^2)

  7. In arbore inquisitionis binarii, casus temporis multiplicitas delendi nodi ().
    A. O (1)
    B. O (n)
    C. O(log n)
    D. O (n log n)

  8. Quae ex hoc genere algorithmorum mediocris temporis complexionem habet O (n log n)().
    A. Bulla sort
    B. Velox sort
    C. Insertion sort
    D. Electio sort

  9. In arbore binaria nodi gradus est ().
    A. Numerus nodis infantum huius nodi
    B. Nodi profundum
    C. altitudo nodi
    D. planities nodi

  10. Praecipua differentia inter B arborem et B + arborem est ( ).
    A. Nodi omnes copiae arboris de B data, cum solum nodis foliorum ex B+ ligno copia data.
    B. B-arbor plus librata est quam B + arbor
    C. Insertio et deletio operationes arboris B simpliciores sunt
    D. Investigationis efficientia B+ arboris est inferior

2. Reple-in-the-blank quaestiones (III puncta inter, XV puncta in summa)

  1. Altitudo ligni binarii integri continens nodos n ______ est.
  2. Mediocris tempus multiplicitas celeris modi est ______.
  3. In nexu coniuncto, tempus complexionis inveniendi kth elementum est ______.
  4. Spatium multiplicitas adiacentiae matricis repraesentationis graphi est ______.
  5. In arbore Huffman via gravia computatur ut longitudo ______.

3. Brevis interrogata respondere (10 puncta singula, 30 puncta in total)

  1. Obsecro breviter proprietates arborum rubri nigrarum describere et quomodo arbores rubrae attentent stateram.
  2. Explica differentiam vestium dynamicorum et ligatorum coniunctorum, de eorum commodis, incommodis et applicatione missionum.
  3. Nullam tabularum principia describere et collisiones tractare quam explicare.

4. Quaestiones programmandi (15 puncta singula, 35 puncta in total)

  1. Quaeso munus efficiendi ut indices an index coniunctus palindromus indicem coniunctum sit.

    def is_palindrome(head):
        # 请在这里编写代码
    
    • 1
    • 2
  2. Quaeso scribe codicem ad inserendam operationem in ligno inquisitionis binarii.

    class TreeNode:
        def __init__(self, key):
            self.left = None
            self.right = None
            self.val = key
    
    def insert(root, key):
        # 请在这里编写代码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  3. Data graphe, quae matrix adiacentiis repraesentata est, efficiendi latitudinis primae inquisitionis (BFS).

    def bfs(graph, start):
        # 请在这里编写代码
    
    • 1
    • 2

Answer

1. Multiplex arbitrium quaestiones

  1. B
  2. A
  3. B
  4. D
  5. C
  6. B
  7. B
  8. B
  9. A
  10. A

2. Reple in in codicellos

  1. iniuriarum (n I) circum descendit
  2. O (n log n)
  3. O(n)
  4. O(V^2)
  5. Summa de ponderati longitudinum omnium nodis foliorum

3. Brevis respondere quaestiones

  1. red nigrum lignum proprietatibus

    • Proprietas I: Quisque nodi rubet vel niger est.
    • Proprietas 2: Nodi radix nigra est.
    • Proprietas 3: Quodlibet folium nodi (NIL node) nigrum est.
    • Proprietas 4: Si nodi rubent, ambo nodi pueri nigri sunt (i.e. nodis rubri continuis per omnes vias ab unoquoque folio ad radicem).
    • Proprietas 5. Omnes simplices nodi a quolibet foliorum tramites tot nodos nigros continent.

    Quomodo arbores rubrae-nigrae teneant statera!

    • Post operationes insertionem et deletionem, proprietates arboris rubri-nigrae circumvolvendo et revocando conservantur, ita ut semper maneat altitudo arboris intra O(log n) range.
  2. Differentia inter album dynamicum ordinata et coniunctum

    • Dynamica vestit (qualia sunt in Pythone): Memoria continua est, elementa cito accessi possunt per indices, insertionem et deletionem operationes elementa mobilia requirunt, et tempus complexionis est O(n).
    • Album coniunctum: Memoria continua et conexa non est per indicium (references).
    • Commoda et Incommoda
      • Dynamica ordinata: Utilitas est ut temere accessus celer sit, sed incommodum est quod insertio et deletio tarda sunt et dilatationem requirunt.
      • Album coniunctum: Utilitas est illa immissio et deletio celeris, sed incommodum est quod accessus temere tardus est et plus memoriae occupat (quia indicibus condi necesse est).
    • Application missiones
      • Vestitiones dynamicae aptae sunt missionibus ubi elementa frequenter accessuri debent et magnitudo saepe non modificatur, ut caching.
      • Coniunctae tabulae aptae sunt missionibus quae crebris elementorum insertionibus ac deletionibus requirunt, ut stantibus ac acervos exsequentes.
  3. Nullam principium mensae

    • Hash tabulae clavium describant ad indices positionum ordinatas per functionem Nullam, inquisitionem, insertionem, et operationes deletionis aptantes.
    • Quomodo confligit tractare
      • Modus inscriptionis aperta: In casu conflictus, detectio linearis, detectio secundaria et alii modi ut proximum liberum locum invenire adhibentur.
      • Catena inscriptionis methodi: Cum conflictus sit, elementa cum valore eiusdem Nullam in indice coniuncto reponuntur.

4. Programming quaestiones

  1. Decerne an index coniunctus sit palindromus indicem coniunctum;

    class ListNode:
        def __init__(self, x):
            self.val = x
            self.next = None
    
    def is_palindrome(head):
        # 使用快慢指针找到链表中点
        slow = fast = head
        while fast and fast.next:
            slow = slow.next
            fast = fast.next.next
        
        # 反转后半部分链表
        prev = None
        while slow:
            temp = slow.next
            slow.next = prev
            prev = slow
            slow = temp
        
        # 比较前半部分和后半部分
        left, right = head, prev
        while right:
            if left.val != right.val:
                return False
            left = left.next
            right = right.next
        return True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  2. Operatio in binario inquisitionis ligno insertio:

    class TreeNode:
        def __init__(self, key):
            self.left = None
            self.right = None
            self.val = key
    
    def insert(root, key):
        if root is None:
            return TreeNode(key)
        if key < root.val:
            root.left = insert(root.left, key)
        else:
            root.right = insert(root.right, key)
        return root
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  3. Latitudo Prima Quaerere (BFS);

    from collections import deque
    
    def bfs(graph, start):
        visited = [False] * len(graph)
        queue = deque([start])
        visited[start] = True
        result = []
    
        while queue:
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10