Stack.Push(Object) 메서드

정의

의 맨 위에 개체를 삽입합니다 Stack.

public:
 virtual void Push(System::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)

매개 변수

obj
Object

Object 에 푸시할 위치입니다Stack. 값은 .일 null수 있습니다.

예제

다음 예제에서는 요소를 추가하거나, 요소 Stack에서 Stack요소를 제거하거나, 맨 위에 Stack있는 요소를 보는 방법을 보여줍니다.

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

설명

이미 용량과 같으면 Count 내부 배열을 자동으로 다시 할당하여 용량 Stack 이 증가하고 새 요소가 추가되기 전에 기존 요소가 새 배열에 복사됩니다.

null 필요한 경우 자리 표시자로 푸시 Stack 할 수 있습니다. 스택의 슬롯을 차지하고 모든 개체처럼 처리됩니다.

스택 Push 용량보다 작은 경우 Count 작업입니다O(1). 새 요소를 Push 수용하기 위해 용량을 늘려야 하는 경우 작업이 nCount됩니다.O(n)

적용 대상

추가 정보