Stack.Push(Object) Metodo

Definizione

Inserisce un oggetto all'inizio della classe Stack.

public:
 virtual void Push(System::Object ^ obj);
public virtual void Push (object obj);
public virtual void Push (object? obj);
abstract member Push : obj -> unit
override this.Push : obj -> unit
Public Overridable Sub Push (obj As Object)

Parametri

obj
Object

Oggetto Object da inserire in Stack. Il valore può essere null.

Esempio

Nell'esempio seguente viene illustrato come aggiungere elementi all'oggetto Stack, rimuovere elementi dall'oggetto Stacko visualizzare l'elemento nella parte superiore di Stack.

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myCollection, char mySeparator );
int main()
{
   
   // Creates and initializes a new Stack.
   Stack^ myStack = gcnew Stack;
   myStack->Push( "The" );
   myStack->Push( "quick" );
   myStack->Push( "brown" );
   myStack->Push( "fox" );
   
   // Displays the Stack.
   Console::Write( "Stack values:" );
   PrintValues( myStack, '\t' );
   
   // Removes an element from the Stack.
   Console::WriteLine( "(Pop)\t\t{0}", myStack->Pop() );
   
   // Displays the Stack.
   Console::Write( "Stack values:" );
   PrintValues( myStack, '\t' );
   
   // Removes another element from the Stack.
   Console::WriteLine( "(Pop)\t\t{0}", myStack->Pop() );
   
   // Displays the Stack.
   Console::Write( "Stack values:" );
   PrintValues( myStack, '\t' );
   
   // Views the first element in the Stack but does not remove it.
   Console::WriteLine( "(Peek)\t\t{0}", myStack->Peek() );
   
   // Displays the Stack.
   Console::Write( "Stack values:" );
   PrintValues( myStack, '\t' );
}

void PrintValues( IEnumerable^ myCollection, char mySeparator )
{
   IEnumerator^ myEnum = myCollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "{0}{1}", mySeparator, obj );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 Stack values:    fox    brown    quick    The
 (Pop)        fox
 Stack values:    brown    quick    The
 (Pop)        brown
 Stack values:    quick    The
 (Peek)        quick
 Stack values:    quick    The
 */
using System;
using System.Collections;
public class SamplesStack  {

   public static void Main()  {

      // Creates and initializes a new Stack.
      Stack myStack = new Stack();
      myStack.Push( "The" );
      myStack.Push( "quick" );
      myStack.Push( "brown" );
      myStack.Push( "fox" );

      // Displays the Stack.
      Console.Write( "Stack values:" );
      PrintValues( myStack, '\t' );

      // Removes an element from the Stack.
      Console.WriteLine( "(Pop)\t\t{0}", myStack.Pop() );

      // Displays the Stack.
      Console.Write( "Stack values:" );
      PrintValues( myStack, '\t' );

      // Removes another element from the Stack.
      Console.WriteLine( "(Pop)\t\t{0}", myStack.Pop() );

      // Displays the Stack.
      Console.Write( "Stack values:" );
      PrintValues( myStack, '\t' );

      // Views the first element in the Stack but does not remove it.
      Console.WriteLine( "(Peek)\t\t{0}", myStack.Peek() );

      // Displays the Stack.
      Console.Write( "Stack values:" );
      PrintValues( myStack, '\t' );
   }

   public static void PrintValues( IEnumerable myCollection, char mySeparator )  {
      foreach ( Object obj in myCollection )
         Console.Write( "{0}{1}", mySeparator, obj );
      Console.WriteLine();
   }
}


/*
This code produces the following output.

Stack values:    fox    brown    quick    The
(Pop)        fox
Stack values:    brown    quick    The
(Pop)        brown
Stack values:    quick    The
(Peek)        quick
Stack values:    quick    The
*/
Imports System.Collections

Public Class SamplesStack    

    Public Shared Sub Main()

        ' Creates and initializes a new Stack.
        Dim myStack As New Stack()
        myStack.Push("The")
        myStack.Push("quick")
        myStack.Push("brown")
        myStack.Push("fox")

        ' Displays the Stack.
        Console.Write("Stack values:")
        PrintValues(myStack, ControlChars.Tab)

        ' Removes an element from the Stack.
        Console.WriteLine("(Pop)" & ControlChars.Tab & ControlChars.Tab & _
           "{0}", myStack.Pop())

        ' Displays the Stack.
        Console.Write("Stack values:")
        PrintValues(myStack, ControlChars.Tab)

        ' Removes another element from the Stack.
        Console.WriteLine("(Pop)" & ControlChars.Tab & ControlChars.Tab & _
           "{0}", myStack.Pop())

        ' Displays the Stack.
        Console.Write("Stack values:")
        PrintValues(myStack, ControlChars.Tab)

        ' Views the first element in the Stack but does not remove it.
        Console.WriteLine("(Peek)" & ControlChars.Tab & ControlChars.Tab & _
           "{0}", myStack.Peek())

        ' Displays the Stack.
        Console.Write("Stack values:")
        PrintValues(myStack, ControlChars.Tab)

    End Sub

    Public Shared Sub PrintValues(myCollection As IEnumerable, mySeparator As Char)
        Dim obj As [Object]
        For Each obj In  myCollection
            Console.Write("{0}{1}", mySeparator, obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' Stack values:    fox    brown    quick    The
' (Pop)        fox
' Stack values:    brown    quick    The
' (Pop)        brown
' Stack values:    quick    The
' (Peek)        quick
' Stack values:    quick    The

Commenti

Se Count è già uguale alla capacità, la capacità dell'oggetto Stack viene aumentata riassegnando automaticamente la matrice interna e gli elementi esistenti vengono copiati nella nuova matrice prima dell'aggiunta del nuovo elemento.

null può essere eseguito il push nell'oggetto Stack come segnaposto, se necessario. Occupa uno slot nello stack e viene trattato come qualsiasi oggetto.

Se Count è minore della capacità dello stack, Push è un'operazione O(1) . Se la capacità deve essere aumentata per ospitare il nuovo elemento, Push diventa un'operazione O(n) , dove n è Count.

Si applica a

Vedi anche