如何在C#中使用接口IStack实现一个顺序堆栈,并给出具体的入栈和出栈操作示例?
时间: 2024-11-06 18:31:26 浏览: 15
在C#编程中,顺序堆栈是堆栈数据结构的一种实现方式,它使用数组来存储数据,并且只允许在一端进行数据的添加(入栈)和移除(出栈)操作。实现顺序堆栈通常需要定义一个接口IStack,然后创建一个类来具体实现这个接口。下面是如何定义IStack接口以及基于数组实现顺序堆栈的示例代码。
参考资源链接:[C#实现堆栈(Stack):原理、接口与实例解析](https://wenku.csdn.net/doc/32k92rnjx0?spm=1055.2569.3001.10343)
首先,定义IStack接口,包含入栈Push、出栈Pop以及获取栈顶元素Peek等方法:
```csharp
public interface IStack<T>
{
void Push(T item); // 入栈操作
T Pop(); // 出栈操作
T Peek(); // 获取栈顶元素但不出栈
int Count(); // 获取堆栈中的元素数量
bool IsEmpty(); // 判断堆栈是否为空
}
```
接下来,实现基于数组的顺序堆栈SeqStack类:
```csharp
public class SeqStack<T> : IStack<T>
{
private T[] stackArray;
private int top;
public SeqStack(int size)
{
stackArray = new T[size];
top = -1;
}
public void Push(T item)
{
if (top == stackArray.Length - 1)
throw new InvalidOperationException(
参考资源链接:[C#实现堆栈(Stack):原理、接口与实例解析](https://wenku.csdn.net/doc/32k92rnjx0?spm=1055.2569.3001.10343)
阅读全文