C# 堆栈 - Push() 方法
C# 堆栈的 Push() 方法用于在堆栈顶部插入对象或元素。当计数等于容量时,堆栈的容量会通过自动重新分配内部数组来增加,并在插入新元素之前将旧元素转移到新数组中。
如果计数小于堆栈容量,则 push 操作复杂度为 O(1)。如果需要增加容量才能插入新元素,则 push 操作复杂度为 O(n)。其中 n 是元素的数量或计数。
语法
以下是 C# 堆栈 Push() 方法的语法 -
public virtual void Push (object obj);
参数
此方法接受一个对象作为参数,其中对象表示推送到堆栈的元素。它可以为 null -
返回值
此方法不返回任何值。
示例 1:在 Stack<int> 中使用 Push 方法
以下是使用 Push() 方法将元素插入堆栈的基本示例 -
using System; using System.Collections.Generic; class Example { static void Main() { Stack<int> numbers = new Stack<int>(); // 插入元素 numbers.Push(10); numbers.Push(20); numbers.Push(30); Console.WriteLine("Stack after Push operations:"); foreach (int num in numbers) { Console.WriteLine(num); } } }
输出
以下是输出 -
Stack after Push operations: 30 20 10
示例 2:在 Stack<string> 中使用 Push 方法
让我们看另一个使用 Push() 方法在堆栈中插入字符串元素的示例 -
using System; using System.Collections.Generic; class Example { static void Main() { Stack<string> words = new Stack<string>(); words.Push("Hello"); words.Push("World"); words.Push("C#"); Console.WriteLine("Stack after Push operations:"); foreach (string word in words) { Console.WriteLine(word); } } }
输出
以下是输出 -
Stack after Push operations: C# World Hello
示例 3:使用 Push 方法在堆栈中存储混合数据类型
以下示例使用 push() 方法在堆栈中存储不同类型的元素 -
using System; using System.Collections; class Example { static void Main() { Stack myStack = new Stack(); myStack.Push(100); myStack.Push("C#"); myStack.Push(3.14); myStack.Push(true); Console.WriteLine("Stack after Push operations:"); foreach (var item in myStack) { Console.WriteLine(item); } } }
输出
以下是输出 -
Stack after Push operations: True 3.14 C# 100
示例 4:使用 Push 方法在堆栈中存储混合数据类型
在此示例中,我们使用 Push 方法在堆栈中存储自定义对象 -
using System; using System.Collections.Generic; class Person { public string Name { get; set; } public int Age { get; set; } public Person(string name, int age) { Name = name; Age = age; } public override string ToString() { return $"Name: {Name}, Age: {Age}"; } } class Example { static void Main() { Stack<Person> people = new Stack<Person>(); people.Push(new Person("Aman", 25)); people.Push(new Person("Gupta", 24)); people.Push(new Person("Vivek", 26)); Console.WriteLine("Stack after Push operations:"); foreach (var person in people) { Console.WriteLine(person); } } }
输出
以下是输出 -
Stack after Push operations: Name: Vivek, Age: 26 Name: Gupta, Age: 24 Name: Aman, Age: 25