栈(Stack)是操作限定在表的尾端进行的线性表。表尾由于要进行插入、删除等操作,所以,它具有特殊的含义,把表尾称为栈顶(Top),另一端是固定的,称为栈底(Bottom)。
栈相当与生活中洗盘子一样,把洗净的盘子一个接一个地往上放(相当于把元素入栈);取用盘子的时候,则从最上面一个接一个地往下拿(相当于把元素出栈)。
下面为栈的接口:
(IDS为各种数据结构的公共接口,包含Count(),IsEmpty(),Clear()三个操作,前面顺序表已经定义过)
using System;
using System.Collections.Generic;
using System.Text;
namespace DateStructrues
{
/// <summary>
/// 栈接口
/// </summary>
/// <typeparam name="T">泛型</typeparam>
public interface IStack<T> : IDS<T>
{
/// <summary>
/// 入栈操作
/// </summary>
/// <param name="item">泛型:要入栈的元素</param>
void Push(T item);
/// <summary>
/// 出栈操作
/// </summary>
/// <returns>出栈的元素</returns>
T Pop();
/// <summary>
/// 取栈顶元素
/// </summary>
/// <returns>取出的元素</returns>
T GetTop();
}
}