本篇文章将结合《算法》第4版、业界大牛的博客和自己的理解,具体描述栈的一些概念,如有错误,请大佬指出。如有侵权,请联系我删除,谢谢。
栈
1.基本概念
栈,实际上是一种特殊的线性表,它的插入和删除运算都只在线性表的一端进行,而另一端是封闭的,不进行任何操作。在栈中,允许进行插入和删除操作的一端称为栈顶,另一端则称为栈底。当栈中没有元素的时候称为空栈。由于栈的操作特殊性,栈也被称为“先进后出”表或“后进先出”表。
2.栈的特点
由栈的定义,容易得出栈的特点:
- 栈底元素总是最早被插入的元素,同时也是最晚被删除的元素;
- 栈顶元素总是最后被插入的元素,同时也是最早被删除的元素;
- 栈具有记忆作用;
- 顺序栈的插入和删除运算都不需要移动表中其他的数据元素;
- 栈顶指针动态地反映了栈中元素的变化情况。
3.栈的顺序存储及其运算
栈的基本运算有3种:
- 入栈运算:即栈的插入,在栈顶位置插入一个新数据。
- 出栈运算:即栈的删除,取出栈顶元素赋予指定变量。
- 读栈顶元素:即将栈顶元素的值赋给某个变量。
这一篇讲的是栈的基本要点,内容不多,也容易理解。下一篇讲队列的一些概念和运算。敬请期待哦<( ̄︶ ̄)>。