Стек - VB (170522)

Формулировка задачи:

Дан указатель P1 на вершину непустого стека. Извлечь из стека первый (верхний) элемент и вывести его значение D, а также адрес P2 новой вершины стека. Если после извлечения элемента стек окажется пустым, то положить P2 = nil. После извлечения элемента из стека осво- бодить память, занимаемую этим элементом.

Код к задаче: «Стек - VB (170522)»

textual
Option Explicit
 
Dim Stack As Collection, Pt As Variant
 
Private Sub Push(ByVal Value As Variant)
    Stack.Add Value
    Pt = Stack.Count - 1
End Sub
Private Function Pop() As Variant
    If Stack.Count = 0 Then Exit Function
    If IsObject(Stack(Stack.Count)) Then
        Set Pop = Stack(Stack.Count)
    Else
        Pop = Stack(Stack.Count)
    End If
    Stack.Remove (Stack.Count)
    If Stack.Count = 0 Then Pt = Null Else Pt = Stack.Count - 1
End Function
 
Private Sub Form_Load()
    Dim P1 As Variant, P2 As Variant, D As Variant
    Set Stack = New Collection
    ' Заполняем
    Push "VB6"
    Push "ASM"
    Push "C++"
    Push 23
    Push 0.3
    ' Получаем указатель P1
    P1 = Pt
    D = Pop
    D = Pop
    D = Pop
    D = Pop
    D = Pop
    ' После извлечения P2
    P2 = Pt
    MsgBox "Указатель = " & IIf(IsNull(P2), "Null", P2) & vbNewLine & _
           "Значение = " & D
End Sub

12   голосов, оценка 4.333 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы
Для поиска решения или похожих решений вы можете воспользоваться "Поиском по сайту" или "Поиском по разделу"
Поиск по сайту