棧(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();
}
}