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

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

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

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

    用数组实现栈

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

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

    回溯

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

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

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

    image

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

    队列实现迷宫
    队列迷宫

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

  • 相关阅读:
    Vocabulary Recitation 2020/05/06
    java set TreeSet详解
    vue快速入门~必备基础知识(一)下~过滤器
    vue快速入门~必备基础知识(一)上
    vue入门(二)基于前面的基础的一个小Demo
    Annotation注释详解~
    泛型~详解~
    Collections工具类详解
    TreeMap实现类和SortMap接口
    Map集合-主要HashMap和Hashtable
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2709276.html
Copyright © 2011-2022 走看看