C#数据结构之堆栈(Stack)实例详解
本文实例讲述了C#数据结构之堆栈(Stack)。分享给大家供大家参考,具体如下:
堆栈(Stack)最明显的特征就是“先进后出”,本质上讲堆栈也是一种线性结构,符合线性结构的基本特点:即每个节点有且只有一个前驱节点和一个后续节点。
相对前面学习过的顺序表、链表不同的地方在于:Stack把所有操作限制在"只能在线性结构的某一端"进行,而不能在中间插入或删除元素。下面是示意图:
从示意图中可以看出,堆栈有二种实现方式:基于数组的顺序堆栈实现、类似链表的链式堆栈实现
先抽象堆栈的接口IStack:
顺序堆栈(SeqStack)的实现:
链式堆栈(LinkStack)的实现
先定义节点Node.cs
下面是LinkStack.cs
测试代码片段:
注: .Net中System.Collections.Generic.Stack<T>已经提供了堆栈的基本实现,明白原理后,仍然推荐大家使用内置的实现。
希望本文所述对大家C#程序设计有所帮助。
您可能感兴趣的文章:C#使用Stack类进行堆栈设计详解C#中泛型容器Stack<T>的用法并实现”撤销/重做”功能C#中的队列Queue<T>与堆栈Stack<T>C#创建安全的栈(Stack)存储结构C#使用foreach语句遍历堆栈(Stack)的方法C#使用Stack<T>进行堆栈设计的实现
上一篇:北京师范大数学科学学院