数据结构的C++实现之栈-链式栈
注:本文为清华大学计算机系列教材《数据结构》-殷人昆-第2版的学习笔记
栈的定义
栈(STACK)定义为只允许在表的末端进行插入和删除的线性表.允许插入和删除的一端叫做栈顶(top),而不允许插入和删除的另一端叫做栈底(bottom),当栈中没有任何元素时称为空栈.栈对数据存取的特点是"先进后出".
链式栈
栈的抽象数据类型有两种典型的存储表示:基于数组的存储表示和基于链表的存储表示.基于数组的存储表示实现的栈称为顺序栈,基于链表的存储表示实现的栈称为链式栈.
采用链式栈来表示一个栈,便于结点的插入与删除.在程序中同时使用多个栈的情况下,用链接表示不仅能够提高效率,还可以达到共享存储空间的目的.
单链表的抽象基类文件
/*
单链表的头文件
// 单链表头文件:LinkedList.h
栈的头文件
// 栈的头文件:stack.h
链式栈的头文件
// 链式栈的头文件:LinkedStack.h
链式栈的实现文件
// 链式栈的实现文件:LinkedStack.cpp