学校网站的建设方案,网站点击后的loading是怎么做的,上海建筑设计研究院有限公司官网,软件开发工程师是前端还是后端后续会有补充和更改 栈和队列
栈和队列也属于线性表
栈
一种特殊的线性表#xff0c;只允许在固定的一端进行插入和删除元素。该端称为栈顶#xff0c;另一端称为栈底。
栈中的数据遵循后进先出#xff08;LIFO#xff09;的原则
压栈/进栈/入栈#xff1a;数据插入… 后续会有补充和更改 栈和队列
栈和队列也属于线性表
栈
一种特殊的线性表只允许在固定的一端进行插入和删除元素。该端称为栈顶另一端称为栈底。
栈中的数据遵循后进先出LIFO的原则
压栈/进栈/入栈数据插入到栈中的操作。入数据在栈顶
出栈栈中数据的删除操作。出数据也在栈顶
栈的实现 栈的实现一般可以使用数组或者链表来实现相对而言数组的结构实现更优一些因为栈的插入和删除都是在栈顶也就是数组的尾部而数组在尾上插入数据的代价比较小。
如果要用链式栈用头部做栈顶更优一些 那么栈的实现是用数组好还是链表好呢 用数组更好因为栈基本上就是尾插尾删而数组尾插尾删的效率很高链表也是可以的而且链表需要用双向的如果用单向的话尾插好说但是尾删不好用 实际中一般不用定长的静态栈结构所以主要学会实现动态增长的栈
栈不要轻易遍历因为它是一边进一边出遍历栈意味着把栈腾空
队列
队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表。队列具有先进先出FIFO的特性
队列和栈的某些性质相反
入队列进行插入操作的一端称为队尾
出队列进行删除操作的一端称为队头 队列的实现 队列也可以用数组和链表的结构实现使用链表的结构实现更优一些如果用数组想队头出数据只能将其覆盖效率比较低。 另外实际中我们有时还会使用一种队列叫循环队列。如生产者消费者模型中可能就会使用循环队列。环形队列可以使用数组实现也可以使用环形链表实现。 队列的应用场景 1.排队。要保持绝对公平性的地方用它。 2.广度优先遍历。BFS、DFS。