学习笔记之数据结构篇——栈和队列
栈和队列是两种特殊的线性表(特殊之处在于插入和删除操作的位置受到限制)
栈
插入和删除操作只允许在线性表的一端进行(后进后出);
栈顶(Top):允许操作的一端;栈底(Bttom):不允许操作的一端;
栈通常包括的三种操作:push、peek、pop。
push -- 向栈中添加元素。peek -- 返回栈顶元素。pop -- 返回并删除栈顶元素的操作。
顺序栈:入栈和出栈操作实现为顺序表尾插入和尾删除,时间复杂度为O(1).
链式栈 :入栈操作时头删除,在栈顶结点之前插入结点;出栈操作是头删除,删除栈顶结点并返回栈顶元素,再使top指向新的栈顶结点。(其插入和删除操作仅限制在链表的表头位置上进行,故链栈没有必要象单链表一样附加头结点,栈顶指针即为链表的头指针。)
队列
插入和删除操作分别在线性表的一端进行(先进先出)
对尾(Rear):允许入队的一端; 对头(Front):允许出队的一端。