公司分享系列之栈和队列

一丶栈的定义

栈是限定仅在表尾进行插入和删除操作的线性表。其中允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何元素的栈称为空栈。

栈又称先进后出的线性表:
公司分享系列之栈和队列_第1张图片

1-1丶链式存储结构的栈

链栈的入栈操作:
公司分享系列之栈和队列_第2张图片

链栈的出栈操作:
公司分享系列之栈和队列_第3张图片

1-2丶栈的经典应用–逆波兰表达式法

我们平时进行四则运算时采用的四则运算表达式其实是中缀表达式,而计算机识别四则运算时会将中缀表达式通过入栈弹栈操作转变为后缀表达式,
公司分享系列之栈和队列_第4张图片

队列

一丶队列的定义

队列(queue)是只允许在一端进行插入操作,而在另外一端进行删除操作的线性表,插入的一端为队尾,删除的一端为队头。如图所示:

公司分享系列之栈和队列_第5张图片

1-1丶队列的链式存储结构

队列的链式存储结构如图所示,其本质就是只能尾进头出的线性单链表。
公司分享系列之栈和队列_第6张图片

1-2丶队列的顺序存储结构

队列的顺序存储结构如图所示,其缺点是:出队复杂度高,容易假溢出。
公司分享系列之栈和队列_第7张图片

你可能感兴趣的:(java)