栈的结构我们可以使用之前学过的动态数组和链表来进一步实现 首先,我们需要确定对外的接口有哪些? 完整的设计代码如下 import com.company.list.ArrayList; import com.company.list.List;publicclassStack<E> {privateList<E> list =newArrayList<>();publicvoidclear(){ list.clear(); }publicintsize(){returnlis...
堆排序也是一种较为常用的排序算法。它是基于对的优先队列来实现的。要学习堆排序,就要学习优先队列,以及堆的特性。 优先队列 在很多的应用场景中,我们需要数据有序,但不需要它们全部有序,或者是不需要它们一次性有序,有序的数据时慢慢的被需要。 比如:某些事件系统中,事件有优先级。程序在处理事件时,只需要知道...
要求队列的最大值,需要把一些数据存起来,怎么存、怎么取,需要找规律; 先写queue 的操作,再写 deque 的操作,写 deque 的操作的时候对着图片; 重要的例子:[8, 6, 5] 接下来要进来 7,有 7 在5、6 肯定不是队列的最大值; 如果队列中的元素从「队首」到「队尾」是单调递减(单调不增)的,这些元素都要...