zoukankan      html  css  js  c++  java
  • 栈与队列

    数据结构,是数据的组织形式,包括存储方式和访问方式两层含义,二者是紧密联系的。例如,数组的各元素是一个挨一个存储的,并且每个成员的大小相同,因此数组可以通过下标访问的方式,结构体的各成员也是一个挨一个存储的,但是每个成员的大小不同,所以只能用.运算符加成员来访问,而不能按下标访问。

    一个问题中的存储方式和访问方式(即数据结构)就决定了解决问题可以采用说明样的算法。要设计一个算法就要同时设计相应的数据结构来支持这种算法。

    用数组实现堆栈(如果堆栈中存储类型相同)

    用数组实现栈

    栈的特点就是“后进先出”。

    用递归实现倒叙打印
    用递归实现栈

    回溯

    迷宫问题,深度优先搜索
    迷宫

    深度优先是一条路走到完, 走不同需要回溯, 倒退回上一步.

    广度优先, 不需要回溯, 也不需要倒退到上一步, 起始说白了, 它不像是一个人在走迷宫, 而是像是N多人, 有分工, 同时尝试多路, 但是一次只能走一步, 所以相比于深度优先, 广度优先算法实现起来, 要简单的多, 如下图:

    image

    队列的特点是,先进先出。

    队列实现迷宫
    队列迷宫

    以上代码的执行,能够充分看出深度和广度优先的区别,主要还是由于数据结构决定的。

  • 相关阅读:
    定位属性position,相对定位,绝对定位
    flex弹性盒模型?
    vue生命周期
    理解cookie、session、token
    前端兼容性问题
    JS 如何为一个元素怎么绑定多个事件?
    js数组的操作方法
    vue页面翻页勾选的记忆功能
    Vue中nextTick的正确使用
    Vue用router.push(传参)跳转页面,参数改变,跳转页面数据不刷新的解决办法
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2709276.html
Copyright © 2011-2022 走看看