Buscar..


Introducción

[TODO: Este tema debe ser un ejemplo de todas las estructuras de datos básicas de CS 101 junto con una explicación como una descripción general de cómo se pueden implementar las estructuras de datos en VBA. Esta sería una buena oportunidad para vincular y reforzar los conceptos introducidos en los temas relacionados con la Clase en la documentación de VBA.]

Lista enlazada

Este ejemplo de lista enlazada implementa operaciones de tipos de datos abstractos establecidos .

Clase SinglyLinkedNode

Option Explicit

Private Value As Variant
Private NextNode As SinglyLinkedNode '"Next" is a keyword in VBA and therefore is not a valid variable name

Clase LinkedList

Option Explicit

Private head As SinglyLinkedNode

'Set type operations

Public Sub Add(value As Variant)
    Dim node As SinglyLinkedNode
        
    Set node = New SinglyLinkedNode
    node.value = value
    Set node.nextNode = head
    
    Set head = node
End Sub

Public Sub Remove(value As Variant)
    Dim node As SinglyLinkedNode
    Dim prev As SinglyLinkedNode
    
    Set node = head
    
    While Not node Is Nothing
        If node.value = value Then
            'remove node
            If node Is head Then
                Set head = node.nextNode
            Else
                Set prev.nextNode = node.nextNode
            End If
            Exit Sub
        End If
        Set prev = node
        Set node = node.nextNode
    Wend

End Sub

Public Function Exists(value As Variant) As Boolean
    Dim node As SinglyLinkedNode
    
    Set node = head
    While Not node Is Nothing
        If node.value = value Then
            Exists = True
            Exit Function
        End If
        Set node = node.nextNode
    Wend
End Function

Public Function Count() As Long
    Dim node As SinglyLinkedNode
    
    Set node = head
    
    While Not node Is Nothing
        Count = Count + 1
        Set node = node.nextNode
    Wend
    
End Function

Árbol binario

Este es un ejemplo de un árbol de búsqueda binario desequilibrado. Un árbol binario se estructura conceptualmente como una jerarquía de nodos que descienden hacia abajo desde una raíz común, donde cada nodo tiene dos hijos: izquierdo y derecho. Por ejemplo, supongamos que los números 7, 5, 9, 3, 11, 6, 12, 14 y 15 se insertaron en un BinaryTree. La estructura sería la siguiente. Tenga en cuenta que este árbol binario no está equilibrado , lo que puede ser una característica deseable para garantizar el rendimiento de las búsquedas; consulte los árboles AVL para ver un ejemplo de un árbol de búsqueda binaria con equilibrio automático.

             7
            / \
           5   9
          / \   \
         3   6   11
                   \ 
                    12
                      \
                       14
                        \
                         15

Clase BinaryTreeNode

Option Explicit

Public left As BinaryTreeNode
Public right As BinaryTreeNode
Public key As Variant
Public value As Variant

Clase binario

[QUE HACER]



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow