Im essayant de créer une double hashtable de hachage dans vb.net et j'obtiens quelques erreur que je ne sais pas comment résoudre. Espérons que vous pouvez m'aider. Les problèmes que j'ai sont n'importe où j'ai dbnull.value ou mod = i obtenir des erreurs dans l'éditeur et je ne sais pas comment les réparer. mettre ce code en vb pour voir ce que je veux dire. voici le code:double hashtable ou hachage double hashtable dans vb.net
Public Class DoubleHashing
Class DataItem
Private data As Integer
Public Sub New(ByVal i As Integer)
data = i
End Sub
Public Function getKey() As Integer
Return data
End Function
End Class
Private hashArray() As DataItem
Private arraySize As Integer
Private bufItem As DataItem
Public Sub New(ByVal size As Integer)
arraySize = size
hashArray(arraySize) = New DataItem(arraySize)
Dim bufItem(-1) As DataItem
End Sub
Public Function hashFunc1(ByVal key As Integer) As Integer
Return key Mod arraySize
End Function
Public Function hashFunc2(ByVal key As Integer) As Integer
Return 6 - key Mod 6
End Function
Public Sub insert(ByVal key As Integer, ByVal item As DataItem)
Dim hashVal As Integer = hashFunc1(key) ' hash the key
Dim stepSize As Integer = hashFunc2(key) ' get step size
' until empty cell or -1
While hashArray(hashVal) <> DBNull.Value & hashArray(hashVal).getKey() <> -1
hashVal += stepSize ' add the step
hashVal mod= arraySize ' for wraparound
End While
hashArray(hashVal) = item ' insert item
End Sub
Public Function delete(ByVal key As Integer) As DataItem
Dim hashVal As Integer = hashFunc1(key)
Dim stepSize As Integer = hashFunc2(key) ' get step size
While hashArray(hashVal) <> DBNull.Value
If hashArray(hashVal).getKey() = key Then
Dim temp As DataItem = hashArray(hashVal) ' save item
hashArray(hashVal) = bufItem ' delete item
Return temp ' return item
End If
hashVal += stepSize ' add the step
hashVal mod= arraySize ' for wraparound
End While
Return DBNull.Value
End Function
Public Function find(ByVal key As Integer) As DataItem
Dim hashVal As Integer = hashFunc1(key)
Dim stepSize As Integer = hashFunc2(key)
While hashArray(hashVal) <> DBNull.Value
If hashArray(hashVal).getKey() = key Then
Return hashArray(hashVal)
End If
hashVal += stepSize
hashVal mod= arraySize
End While
Return DBNull.Value
End Function
End Class
Alors, quelle est votre question? – Gabe
Je reçois une erreur de syntaxe avec dbnull.value et des lignes comme ceci hashVal mod = arraySize et je ne connais pas d'autres valeurs pour null dans vb – bob
nvm sur le mod = stuff. – bob