VB.Net/Data Structure/Stack

Материал из VB Эксперт
Перейти к: навигация, поиск

Push Integer into a Stack

<source lang="vbnet"> Imports System Imports System.Collections Imports System.Collections.Specialized

Public Class MainClass

   Shared Sub Main(ByVal args As String())
       Dim letter_stack As New Stack
      
       
       " Add the letters to the stack.
       For i As Integer = 0 To 10
           Console.WriteLine(i)
           letter_stack.Push(i)
       Next
       " Remove the letters from the stack.
       Do While letter_stack.Count > 0
           Console.WriteLine( DirectCast(letter_stack.Pop(), Integer) )
       Loop
   End Sub

End Class


      </source>


Simple Demo for Stack: Push, Pop and Peek

<source lang="vbnet"> Imports System Imports System.Collections

Public Class MainClass

   Shared Sub Main(ByVal args As String())
            Dim intStack As New Stack( )
            " populate the stack
            Dim i As Integer
            For i = 0 To 7
                intStack.Push((i * 5))
            Next i
            " Display the Stack.
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
            " Remove an element from the stack.
            Console.WriteLine("(Pop){0}", intStack.Pop( ))
            " Display the Stack.
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
            " Remove another element from the stack.
            Console.WriteLine("(Pop){0}", intStack.Pop( ))
            " Display the Stack.
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
            " View the first element in the
            " Stack but do not remove.
            Console.WriteLine("(Peek)   {0}", intStack.Peek( ))
            " Display the Stack.
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
   End Sub
   Public Shared Sub DisplayValues(ByVal myCollection As IEnumerable)
       Dim myEnumerator As IEnumerator = myCollection.GetEnumerator( )
       While myEnumerator.MoveNext( )
            Console.WriteLine("{0} ", myEnumerator.Current)
       End While
       Console.WriteLine( )
   End Sub "DisplayValues

End Class

      </source>


Stack Demo: push, pop and peek

<source lang="vbnet"> Imports System Imports System.Collections Public Class MainClass

   Shared Sub Main()
            Dim intStack As New Stack(  )
            "populate the stack
            Dim i As Integer
            For i = 0 To 7
                intStack.Push((i * 5))
            Next i
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
            Console.WriteLine("(Pop){0}", intStack.Pop(  ))
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
            Console.WriteLine("(Pop){0}", intStack.Pop(  ))
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
            Console.WriteLine("(Peek)   {0}", intStack.Peek(  ))
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
  End Sub
  Public Shared Sub DisplayValues(ByVal myCollection As IEnumerable)
      Dim myEnumerator As IEnumerator = myCollection.GetEnumerator(  )
      While myEnumerator.MoveNext(  )
          Console.WriteLine("{0} ", myEnumerator.Current)
      End While
      Console.WriteLine(  )
  End Sub

End Class


      </source>


Stack to Array

<source lang="vbnet"> Imports System Imports System.Collections Public Class MainClass

   Shared Sub Main()
            Dim intStack As New Stack(  )
            Dim i As Integer
            For i = 1 To 4
                intStack.Push((i * 5))
            Next i
            Console.WriteLine("intStack values:")
            DisplayValues(intStack)
            Const arraySize As Integer = 10
            Dim testArray(arraySize) As Integer
            For i = 1 To arraySize - 1
                testArray(i) = i * 100
            Next i
            Console.WriteLine("Contents of the test array")
            DisplayValues(testArray)
            intStack.CopyTo(testArray, 3)
            Console.WriteLine("TestArray after copy:  ")
            DisplayValues(testArray)
            Dim myArray As Object(  ) = intStack.ToArray(  )
            Console.WriteLine("The new array:")
            DisplayValues(myArray)
  End Sub
  Public Shared Sub DisplayValues(ByVal myCollection As IEnumerable)
      Dim myEnumerator As IEnumerator = myCollection.GetEnumerator(  )
      While myEnumerator.MoveNext(  )
          Console.WriteLine("{0} ", myEnumerator.Current)
      End While
      Console.WriteLine(  )
  End Sub

End Class


      </source>