堆栈工具-StackUtil
# 简介
静态工具类 StackUtil,是一个 C# 工具类,封装了常用的堆栈操作方法,包括将元素推入堆栈顶部、从堆栈顶部移除元素、访问堆栈顶部元素等。这些方法可以对 Stack 类型的对象进行操作。此外,StackUtil 还提供了一些辅助方法,如判断堆栈中是否包含指定元素、从堆栈中移除指定元素、将堆栈中的元素复制到新数组中等。通过使用 StackUtil 工具类,我们可以更加方便地对堆栈进行常见操作。
# EasyTool.StackUtil 类
方法说明:
Push<T>
: 将指定元素推入堆栈的顶部。Pop<T>
: 从堆栈的顶部移除并返回对象。Peek<T>
: 返回位于堆栈顶部的对象但不将其移除。Contains<T>
: 确定堆栈是否包含指定元素。Remove<T>
: 从堆栈中移除指定元素的第一个匹配项。ToArray<T>
: 将堆栈中的所有元素复制到新数组中。CopyTo<T>
: 将堆栈中的所有元素复制到新数组中,从指定的索引开始。Clear<T>
: 从堆栈中移除所有元素。
# Push-将指定元素推入堆栈的顶部。
/// <summary>
/// 将指定元素推入堆栈的顶部
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
/// <param name="item">要添加的元素</param>
public static void Push<T>(Stack<T> stack, T item)
# Pop-从堆栈的顶部移除并返回对象
/// <summary>
/// 从堆栈的顶部移除并返回对象
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
/// <returns>堆栈顶部的元素</returns>
/// <exception cref="System.InvalidOperationException">堆栈为空时引发异常</exception>
public static T Pop<T>(Stack<T> stack)
# Peek-返回位于堆栈顶部的对象但不将其移除
/// <summary>
/// 返回位于堆栈顶部的对象但不将其移除
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
/// <returns>堆栈顶部的元素</returns>
/// <exception cref="System.InvalidOperationException">堆栈为空时引发异常</exception>
public static T Peek<T>(Stack<T> stack)
# Contains-确定堆栈是否包含指定元素
/// <summary>
/// 确定堆栈是否包含指定元素
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
/// <param name="item">要查找的元素</param>
/// <returns>如果堆栈包含指定元素,则为 true;否则为 false。</returns>
public static bool Contains<T>(Stack<T> stack, T item)
# Remove-从堆栈中移除指定元素的第一个匹配项
/// <summary>
/// 从堆栈中移除指定元素的第一个匹配项
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
/// <param name="item">要移除的元素</param>
/// <returns>如果已成功移除元素,则为 true;否则为 false。</returns>
public static bool Remove<T>(Stack<T> stack, T item)
# ToArray-将堆栈中的所有元素复制到新数组中
/// <summary>
/// 将堆栈中的所有元素复制到新数组中
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
/// <returns>包含堆栈中所有元素的新数组</returns>
public static T[] ToArray<T>(Stack<T> stack)
# CopyTo-将堆栈中的所有元素复制到新数组中,从指定的索引开始
/// <summary>
/// 将堆栈中的所有元素复制到新数组中,从指定的索引开始
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
/// <param name="array">要复制到的目标数组</param>
/// <param name="arrayIndex">目标数组的起始索引</param>
public static void CopyTo<T>(Stack<T> stack, T[] array, int arrayIndex)
# Clear-从堆栈中移除所有元素。
/// <summary>
/// 从堆栈中移除所有元素
/// </summary>
/// <typeparam name="T">堆栈元素类型</typeparam>
/// <param name="stack">堆栈</param>
public static void Clear<T>(Stack<T> stack)
# 代码示例
using System;
using System.Collections.Generic;
using StackUtil;
class Program
{
static void Main(string[] args)
{
Stack<int> stack = new Stack<int>();
StackUtil.Push(stack, 1);
StackUtil.Push(stack, 2);
StackUtil.Push(stack, 3);
int top = StackUtil.Peek(stack);
Console.WriteLine($"The top element of the stack is: {top}");
Console.WriteLine($"The stack contains 2: {StackUtil.Contains(stack, 2)}");
StackUtil.Remove(stack, 2);
int[] arr = StackUtil.ToArray(stack);
Console.WriteLine($"The elements in the stack are: {string.Join(", ", arr)}");
StackUtil.Clear(stack);
}
}
# 输出结果
The top element of the stack is: 3
The stack contains 2: False
The elements in the stack are: 3, 1
上次更新: 2023/04/26, 22:10:06