前言
八道题,没想到用了五天。当然需要时间的沉淀,但是一天不能啥也不干啊!
内容
首先得熟悉特点和基本操作。
栈与队列在计算机底层中非常重要,这就是为什么要学好数据结构。
可视化的软件例如APP、网站之类的,都是非常上层的应用,底层很多功能的实现都是基础的数据结构和算法。
所以数据结构与算法的应用往往隐藏在我们看不到的地方!
一些思路和tips
栈在计算机底层中用于保存程序运行路径中各个点的信息,以便用于回溯操作或其他需要访问已经访问过的节点信息的操作。比如,在解决迷宫问题时,我们可以使用栈来保存已经访问过的节点信息,以便在无法找到解决方案时进行回溯。另外,在进制转化问题中,我们可以使用栈来保存计算过程中的中间结果,以便在最后得出最终答案。
队列在计算机底层中也有着广泛的应用。例如,解决主机和外部设备之间速度不匹配问题以及解决CPU竞争问题。在主机和打印机之间,由于主机输出数据的速度远远大于打印机的打印速度,因此需要建立一个打印数据缓冲区。这个缓冲区就是一个队列,主机将数据写入队列后可以继续执行其他任务,而打印机则可以从队列中读取数据并慢慢打印。另外,在多任务调度中,CPU资源的竞争就是一个典型的例子。我们可以使用队列来保存需要执行的任务列表,按照先进先出的原则进行任务调度,从而提高CPU的有效利用率。
一个队列
出队再入队到队尾,想象成一个环
双栈
两个队列
堆
不是很熟,后续还得学
另:切片是左闭右开区间
最后
下一站,二叉树!