Стек - VB (170522)

Узнай цену своей работы

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

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

Решение задачи: «Стек»

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