作者:laosiji | 来源:互联网 | 2023-06-18 14:48
数据结构 ⚡️数据结构-第一章 ⚡️抽象数据类型案例 ⚡️数据结构-第二章(1)-线性结构 ⚡️数据结构-第二章(2)-线性表的顺序表示和实现 ⚡️数据结构-第二章(3)-顺序表(含代码) ⚡️数据结构-第二章(4)-顺序表案例(含代码) ⚡️数据结构-第二章(5)-链式存储结构 ⚡️数据结构-第二章(6)-单链表基本操作的实现 ⚡️数据结构-第二章(7)-双向链表和循环链表 ⚡️数据结构-第二章(8)-线性表的应用(线性表合并)
数据结构-第三章-栈和队列(1)-定义和特点 数据结构 前言 一、栈的定义和特点 二、队列的定义和特点 三、栈和队列的应用案例 3.1 进制转换(栈) 3.2 括号匹配的检验(栈) 3.3 表达式求值(栈) 3.4 舞伴问题(栈) 总结
前言 栈和队列是两种重要的线性结构。从数据结构角度看,栈和队列也是线性表,但她们是受限的线性表。 栈:只能在队尾插入,只能在队尾删除。
队列:只能在队尾插入,只能在队头删除。
如下图,我们可以将栈想象成手电筒放电池的部分、子弹匣等,为什么呢?我们以子弹匣为例,子弹只能从弹匣尾部放入,也只能从弹匣尾部弹出。栈就是这个原理:只能从队尾插入,也只能从队尾删除。 如下图,我们可以将队列想象成人在排队面试,为什么呢?你想一群人排队面试,前面的人很定先面试,也先走,来了一个人要排队,必须排在队尾,对吧。队列就是这个原理:只能从队尾插入,只能从队头删除。
一、栈的定义和特点 栈的定义:
栈(stack)是限定在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有着特殊的含义,称为“栈顶(top)”,相应地,表头端称为栈底(bottom),不含元素的栈称为空栈。
栈的特点:
如下图所示:栈的修改是按后进先出的原则进行的,因此栈又称为后进先出(last in first out)的线性表(简称LIFO结构)
栈和一般线性表对比:
二、队列的定义和特点 队列的定义:
和栈相反,队列(queue)是一种先进先出(first in first out)简称FIFO的线性表。它是只允许在表的一端进行插入,在另外一端删除的数据结构。 在队列中,允许插入的一端叫做队尾(rear),允许删除的一端则称为队头(front)。
三、栈和队列的应用案例 3.1 进制转换(栈)
3.2 括号匹配的检验(栈)
3.3 表达式求值(栈)
3.4 舞伴问题(栈)
总结 期待大家和我交流,留言或者私信,一起学习,一起进步!