View difference between Paste ID: DMv29a11 and md4AX2yd
SHOW: | | - or go back to the newest paste.
1
Public Class Form1
2
    Structure LinkedList
3
        Dim Pointer As Integer
4
        Dim Data As String
5
    End Structure
6
    Dim NextFree As Integer = 5
7
    Dim StartPointer As Integer = 3
8
    Dim node(10) As LinkedList
9
10
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
11
        node(1).Data = "Cake"
12
        node(2).Data = "Biscuit"
13
        node(3).Data = "Apple"
14
        node(4).Data = "Bun"
15
        node(1).Pointer = 0
16
        node(2).Pointer = 4
17
        node(3).Pointer = 2
18
        node(4).Pointer = 1
19
        Call UpdateList()
20
    End Sub
21
    Sub UpdateList()
22
23
        If NextFree = 11 Then
24
            MsgBox("No space left")
25
        Else
26
            lstOutput.Items.Clear()
27
            For i = 1 To NextFree
28
                If Not String.IsNullOrEmpty(node(i).Data) Then
29
                    lstOutput.Items.Add(node(i).Data)
30
                End If
31
            Next i
32
        End If
33
    End Sub
34
    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
35
        Me.Close()
36
        End
37
    End Sub
38
39
    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
40
        Dim item As String = InputBox("Please Insert data to add")
41
        node(NextFree).Data = item
42
        If item < node(StartPointer).Data Then
43
            Dim temp As String = NextFree
44
            NextFree = node(NextFree).Pointer
45
            node(temp).Pointer = StartPointer
46
            StartPointer = temp
47
        End If
48
        NextFree += 1
49
        Call UpdateList()
50
    End Sub
51
52
    Private Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click
53
        Dim item As String = lstOutput.SelectedItem
54
        Dim itemPointer, itemAddr As Integer
55
        For i = 1 To NextFree
56-
                MsgBox(node(i).Pointer)
56+
57
                itemPointer = node(i).Pointer
58
                itemAddr = i
59
            End If
60
            Next i
61
        Dim temp As String = NextFree
62
        NextFree = itemAddr
63
        node(itemAddr - 1).Pointer = node(itemAddr).Pointer
64
        node(itemAddr).Pointer = temp
65
        NextFree -= 1
66
        node(itemAddr).Data = Nothing
67
        node(itemAddr).Pointer = Nothing
68
        Call UpdateList()
69
    End Sub
70
71
    Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
72
        Dim item As String = InputBox("Please specify your search query")
73
        Dim result As Integer
74
        Dim status As Boolean
75
        For i = 1 To NextFree
76
            If item = node(i).Data Then
77
                MsgBox("Item has been found with following addr " & node(i).Pointer)
78
                result = node(i).Pointer
79
                status = True
80
            End If
81
        Next
82
        If status = False And result = Nothing Then
83
            MsgBox("No data has been found please try again")
84
        End If
85
86
    End Sub
87
End Class