Stack栈数据管理-stack.cpp
栈(Stack)数据结构实现
项目概述
本项目使用C++语言,基于单向链表实现了一个完整的栈数据结构。栈是一种后进先出(LIFO,Last In First Out)的线性表,所有操作仅在栈顶一端进行。本项目将栈的底层实现细节完全封装,对外提供简洁、安全的操作接口。
功能模块与API说明
核心操作(O(1)时间复杂度)
· push(int value):将元素压入栈顶。动态创建新节点,挂接到链表头部,栈顶指针上移,元素个数自增。
· pop():弹出栈顶元素。保存栈顶节点,栈顶指针指向下一节点,释放原栈顶内存,元素个数自减。若栈为空,输出错误提示。
· top():返回栈顶元素的值(不删除)。直接读取栈顶节点的数据域。若栈为空,返回-1并输出错误提示。
辅助操作
· isEmpty():判断栈是否为空。检查栈顶指针是否为nullptr,时间复杂度O(1)。
· size():返回栈中元素个数。直接返回count成员变量,时间复杂度O(1)。
· clear():清空栈。循环pop所有节点,释放全部内存,重置栈顶指针和计数器。
资源管理
· 构造函数:初始化栈顶指针为nullptr,计数器归零。
· 析构函数:自动调用clear()释放所有动态分配的内存,确保无内存泄漏。
云计算
内容平台