C#数据结构(二)----栈和队列

来源:互联网 发布:ajax发送表单数据 编辑:程序博客网 时间:2024/05/21 17:28

上一篇:C#数据结构(一)----线性表

栈和队列属于线性结构,线性表、栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同。
差别是线性表的操作不受限制,而栈和队列的操作受到限制。
栈的操作只能在表的一端进行,队列的插入操作在表的一端进行而其它操作在表的另一端进行,所以,把栈和队列称为操作受限的线性表。 

1、栈接口

栈的接口定义

2、顺序栈

顺序栈

3、链栈

链栈

4、例子

例子

 * C#中的栈:
 * C#2.0以下版本提供非泛型的栈,继承自接口ICollection,IEnumerable和ICloneable。
 * C#2.0以上版本提供泛型栈(Stack<T>),继承自接口IEnumerable<T>, ICollection, IEnumerable。
5、队列接口

队列接口

6、顺序队列

顺序队列

7、链队列

链队列

8、例子

例子

 * C#中的队列:
 * C#2.0以下版本提供非泛型的队列,继承自接口ICollection,IEnumerable和ICloneable。
 * C#2.0以上版本提供泛型队列(Queue<T>),继承自接口IEnumerable<T>, ICollection, IEnumerable。

 

  小结:
  1)栈和队列是操作受限的线性表。
     2)栈和队列有两种存储结构,顺序存储结构和链式存储结构
     3)栈是先进后出的线性表,适用于括号匹配、表达式求值等问题。
     4)队列的删除操作在队头进行,而插入、查找等操作在队尾进行
     5)队列是先进先出的线性表,适用于排队等问题