【数据结构】考研真题攻克与重点知识点剖析 - 第 5 篇:树与二叉树

news2024/11/25 14:49:00

前言

  • 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。
  • 此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术有限,最终数据清洗结果不够理想,相关CSDN文章便没有发出。

(考研真题待更新)

欢迎订阅专栏:408直通车

请注意,本文中的部分内容来自网络搜集和个人实践,如有任何错误,请随时向我们提出批评和指正。本文仅供学习和交流使用,不涉及任何商业目的。如果因本文内容引发版权或侵权问题,请通过私信告知我们,我们将立即予以删除。

文章目录

  • 前言
  • 第五章 树与二叉树
    • 树的基本概念
      • 树的定义(一种逻辑结构,具有层次关系):树是n个结点的有限集
      • 树的基本术语
        • 小结
      • 树的性质
        • 小结
    • 二叉树
      • 二叉树的定义
      • 特殊的二叉树
        • 小结
      • 二叉树性质
      • 完全二叉树性质
        • 小结
      • 存储结构
        • 顺序存储结构
        • 链式存储结构
        • 小结
    • 遍历二叉树和线索二叉树
      • 二叉树的遍历
        • 先序遍历
        • 中序遍历
        • 后序遍历
          • 小结
        • 层次遍历
      • 由遍历序列构造二叉树
        • 前序+中序遍历序列
        • 后序+中序遍历序列
        • 层序+中序遍历序列
        • 小结
      • 线索二叉树
        • 中序线索二叉树
          • 代码实现
        • 先序线索二叉树
          • 代码实现
        • 后序线索二叉树
          • 代码实现
        • 小结
        • 线索二叉树找前驱/后继
          • 中序线索二叉树找中序后继
          • 中序线索二叉树找中序前驱
          • 先序线索二叉树找中序后继
          • 先序线索二叉树找中序前驱
          • 后序线索二叉树找中序后继
          • 后序线索二叉树找中序前驱
        • 小结
    • 树和森林
      • 树的逻辑结构
      • 树的存储结构
      • 树、森林与二叉树的转换
      • 树和森林的遍历
    • 哈夫曼树及其应用
      • 基本概念
      • 哈夫曼树的定义
      • 哈夫曼树的构造
      • 哈夫曼编码
      • 多叉哈夫曼树(题目考点,类比外部排序的知识点),补0结点(虚叶结点)
    • 并查集
      • 基本思路
      • 代码实现
      • 优化
        • 小树合并到大树
        • 压缩路径
        • 小结
      • 并查集应用
      • 代码(巨无敌,就两行代码)
  • 考研真题
    • 408 - 2023

第五章 树与二叉树

树的基本概念

树的定义(一种逻辑结构,具有层次关系):树是n个结点的有限集

  • 若n=0,称为空树

  • 若n>0,则需要满足如下两个条件

    • 有且仅有一个特定的称为根的结点

    • 其余结点可分为m个互不相交的有限集T1、T2…Tm,其中每一个集合又是一棵树,并称为根的子树

在这里插入图片描述
在这里插入图片描述

树的基本术语

  • 结点的关系在这里插入图片描述

    • 结点的祖先:从根到该结点所经分支上的所有结点

    • 结点的子孙:以某结点为根的子树中的任一结点

    • 双亲和孩子:结点的子树的根称为该结点的孩子,该结点称为孩子的双亲

    • 兄弟:有相同双亲的结点

    • 堂兄弟:双亲在同一层

  • 结点的度在这里插入图片描述

    • 树中一个结点的孩子个数,树中结点的最大度数称为树的度
  • 分支结点(非终端结点)

    • 度大于0的结点
  • 叶子结点(终端结点)

    • 度为0的结点
  • 结点的层次

    • 从树根开始定义,根结点为第一层
  • 结点的深度

    • 从根结点开始自顶向下逐层累加
  • 结点的高度

    • 从叶结点开始自底向上逐层累加
  • 树的高度(深度)

    • 树中结点的最大层数
  • 有序树和无序树在这里插入图片描述

    • 树中结点的各子树从左到右时有次序的,则该树为有序树,反之无序树
  • 森林在这里插入图片描述

    • n课互不相交的树的集合
小结

在这里插入图片描述

树的性质

  • 树的结点数=总度数+1
    在这里插入图片描述

  • m叉树

    • 在这里插入图片描述

      • 每个结点最多只能有m个孩子的树(可以是空树)

        • 允许所有结点度<m
      • 高度为h的m叉树至少有h个结点,至多有(m^h-1)/(m-1)个结点(等比数列)

      • 具有n个结点的m叉树最小高度为 ⌈logm (n(m-1)+1)⌉

  • 度为m的树

    • 在这里插入图片描述

      • 任意结点的度<=m

      • 至少有一个结点度=m

      • 一定是非空树,至少有m+1个结点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述

二叉树

二叉树的定义

在这里插入图片描述

在这里插入图片描述

  • 二叉树是n个结点的有限集,它或者是空集(n=0),或者由一个跟结点及两棵互不相交的分别称作这个根的左子树和右子树的二叉树组成

  • 特点

    • 二叉树是有序树,子树有左右之分,其次序不能颠倒

    • 二叉树可以是空集合,根可以有空的左子树或空的右子树

  • 二叉树的性质

    • 非空二叉树上的叶子结点数等于度为2的结点数+1

    • 非空二叉树上第k层上至多有2^k-1个结点

    • 高度为h的二叉树至多有2^h-1结点

特殊的二叉树

在这里插入图片描述

  • 满二叉树

    • 概念

      • 一颗高度为h,且含有2^h-1个结点的二叉树称为满二叉树
    • 性质

      • 对于编号为i的结点

        • 双亲为⌊i/2⌋

        • 若有左孩子,则左孩子为2i

        • 若有右孩子,则右孩子为2i+1

  • 完全二叉树

    • 概念

      • 高度为h,有n个结点的二叉树,当且仅当其每个结点都与高度为h的满二叉树中编号为1-n的结点一一对应
    • 特点

      • i<=⌊n/2⌋则结点为分支结点,否则为叶子结点

      • 按编号,一旦出现某结点为叶子结点或只有左孩子,则编号大于i的结点均为叶子结点

    • 性质

      • 具有n个结点的完全二叉树的深度为⌊log2n⌋+1

        • 证明:二叉树深度为k,结点数量:2(k-1)<=n<2k,不等式取对数,推出
      • 完全二叉树依次编号1,2,…,n,则对任一结点i有

        • 如果i>1,则其双亲结点是⌊i/2⌋

        • 如果2i>n,则结点i为叶子结点,无左孩子

        • 如果2i+1>n,则结点i无右孩子

        • 结点i所在层次(深度)为⌊log2i⌋+1

在这里插入图片描述

  • 二叉排序树
    在这里插入图片描述
  • 平衡二叉树
    在这里插入图片描述
小结

在这里插入图片描述

二叉树性质

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完全二叉树性质

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述

存储结构

顺序存储结构

在这里插入图片描述
在这里插入图片描述

  • 用一组地址连续的存储单元存储二叉树,为了反映二叉树结点间的逻辑关系,需要添加很多不存在的空结点

  • 浪费空间,存储右单支树时,深度为k需要2^k-1的空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

链式存储结构
  • 二叉链表

    • 含有n个结点的二叉链表中,含有n+1个空链域
    • 在这里插入图片描述
      在这里插入图片描述
      有n-1个结点头上连一个指针
      2n-(n-1)=n+1

在这里插入图片描述

  • 三叉链表(带父结点)
    • 在这里插入图片描述
      在这里插入图片描述
小结

在这里插入图片描述
在这里插入图片描述

遍历二叉树和线索二叉树

二叉树的遍历

  • 概念

  • 二叉树的遍历是指按某条搜索路径访问树中每个结点,每个结点均被且仅被访问一次在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

先序遍历
  • 在这里插入图片描述
    在这里插入图片描述

    • 先访问根结点

    • 先序遍历左子树

    • 先序遍历右子树在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

中序遍历
  • 在这里插入图片描述
    在这里插入图片描述

    • 中序遍历左子树

    • 访问根结点

    • 中序遍历右子树在这里插入图片描述

后序遍历
  • 在这里插入图片描述
    在这里插入图片描述

    • 后序遍历左子树

    • 后序遍历右子树

    • 访问根结点

    • 可用于找祖先和子孙结点间路径在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述

层次遍历
  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 先将二叉树根结点入队,然后出队,访问出队结点

    • 若它有左子树,则将左子树根结点入队

    • 若它有右子树,则将右子树根结点入队

    • 然后出队,访问出队结点…如此反复,直到队列为空

由遍历序列构造二叉树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 二叉树的先序(或后序)序列和中序序列可以唯一确定一颗二叉树在这里插入图片描述
前序+中序遍历序列

前序确定根节点(第一个出现的),中序确定左右子树

前序遍历序列=根结点+左子树的前序遍历序列+右子树的前序遍历序列

中序遍历=左子树的中序遍历序列+根结点+右子树的中序遍历序列

在这里插入图片描述

在这里插入图片描述

后序+中序遍历序列

后序确定根节点(最后一个出现的),中序确定左右子树

后序遍历序列=左子树的后序遍历序列+右子树的后序遍历序列+根结点

中序遍历=左子树的中序遍历序列+根结点+右子树的中序遍历序列

在这里插入图片描述

层序+中序遍历序列

层序确定根节点(第一个出现的),中序确定左右子树

中序遍历=左子树的中序遍历序列+根结点+右子树的中序遍历序列

层序遍历=根结点+左子树的根+右子树的根

在这里插入图片描述

在这里插入图片描述

  • 用二叉树表示算术表达式,将算术表达式转变为二叉树

  • 先序遍历对应前缀表示

  • 中序遍历对应中缀表示

  • 后序遍历对应后缀表示

  • 递归算法和非递归算法的转换:利用栈进行实现

  • 在这里插入图片描述

小结

在这里插入图片描述
在这里插入图片描述

线索二叉树

在这里插入图片描述

  • 概念

    • 将结点空的指针指向其前驱和后继,这种改变指向的指针称为“线索”,加上线索的二叉树称为线索二叉树

      • 方便找到前驱和后继

      • 遍历可以不从根结点开始

    • 一种物理结构

      • 二叉树内部的存储结构
  • 结构

    • 在这里插入图片描述

      • 1表线索,0表孩子
  • 线索二叉树的构造

    • 可以通过设置指针pre指向刚刚访问过的结点,指针p指向正在访问的结点,即pre指向p的前驱,从而找到前驱位置
  • 后序线索二叉树不能有效求后序后继

中序线索二叉树

在这里插入图片描述

在这里插入图片描述

代码实现

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

先序线索二叉树

在这里插入图片描述

在这里插入图片描述

代码实现

不同点
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

后序线索二叉树

在这里插入图片描述

在这里插入图片描述

代码实现

在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线索二叉树找前驱/后继
中序线索二叉树找中序后继

在这里插入图片描述

中序线索二叉树找中序前驱

在这里插入图片描述

先序线索二叉树找中序后继

在这里插入图片描述

先序线索二叉树找中序前驱

在这里插入图片描述
在这里插入图片描述

后序线索二叉树找中序后继

在这里插入图片描述

后序线索二叉树找中序前驱

在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述

在这里插入图片描述

树和森林

树的逻辑结构

在这里插入图片描述

树的存储结构

在这里插入图片描述

  • 双亲表示法
    • 在这里插入图片描述

      • 概念

        • 采用一组连续空间来存储每个结点,同时每个结点设一个伪指针,指向双亲在数组的位置在这里插入图片描述
      • 优点

        • 访问结点的双亲快
      • 缺点

        • 访问结点的孩子需要遍历整个结构

在这里插入图片描述

  • 孩子表示法

    • 在这里插入图片描述

      • 概念

        • 将每个结点的孩子都用单链表链接为一个线性结构
      • 优点

        • 访问孩子结点快
      • 缺点

        • 寻找双亲需要遍历n个结点中孩子链表指针域所指n个孩子链表(可为每个结点设parent域指向父结点)
  • 孩子兄弟表示法

    • 在这里插入图片描述

      • 概念

        • 以二叉链表为存储结构,孩子兄弟表示法使每个结点包括:结点值、指向结点第一个孩子的左指针、指向结点下一个兄弟结点的右指针
      • 优点

        • 方便地实现树转换为二叉树的操作,易于查找结点的孩子
      • 缺点

        • 找双亲麻烦(可为每个结点设parent域指向父结点)

树、森林与二叉树的转换

  • 树转换成二叉树

    • 在这里插入图片描述
      在这里插入图片描述

      • 加线:在兄弟之间架一条线

      • 抹线:对每个结点,除了左孩子外,去除其与其余孩子之间的关系

      • 旋转:以树的根结点为轴心,将树顺时针旋转45度

  • 二叉树转换成树

    • 在这里插入图片描述
      在这里插入图片描述

      • 加线:若p结点是双亲结点的左孩子,则将p的右孩子,右孩子的右孩子…沿分支找到的所有右孩子,都与p的双亲连起来

      • 抹线:抹掉原二叉树中双亲与右孩子之间的连线

      • 调整:将结点按层次排序,形成树结构

  • 森林转换成二叉树

    • 在这里插入图片描述在这里插入图片描述

      • 将个棵树分别转换成二叉树

      • 将每棵树的根结点用线相连

      • 以第一课树根结点为二叉树的根,顺时针旋转即可

  • 二叉树转换成森林

    • 在这里插入图片描述在这里插入图片描述

      • 抹线:将二叉树中根结点与其右孩子连线,及沿右分支搜索到的所有右孩子间连线全部抹掉

      • 还原:将孤立的二叉树还原成树

在这里插入图片描述

树和森林的遍历

    • 深度优先遍历

      • 先根遍历在这里插入图片描述在这里插入图片描述

        • 若树非空,先访问根结点,再用先根遍历规则依次遍历根结点的每一颗子树

        • 其遍历序列与这棵树相应二叉树的先序序列相同

      • 后根遍历在这里插入图片描述在这里插入图片描述

      • 若树非空,先用后根遍历规则依次遍历根结点的每一颗子树,再访问根结点

      • 其遍历序列与这棵树相应二叉树的中序序列相同

    • 广度优先遍历
      在这里插入图片描述

  • 森林

    • 先序遍历在这里插入图片描述在这里插入图片描述

      • 访问森林中第一棵树的根结点

      • 先序遍历第一棵树中根结点的子树森林

      • 先序遍历除去第一棵树之后剩余树构成的森林

    • 中序遍历在这里插入图片描述在这里插入图片描述

      • 中序遍历森林中第一棵树的根结点的子树森林

      • 访问第一棵树的根结点

      • 中序遍历除去第一棵树之后剩余树构成的森林

  • 对应关系
    在这里插入图片描述

哈夫曼树及其应用

基本概念

在这里插入图片描述

  • 路径

    • 从树中一个结点到另一个结点之间的分支构成这两个结点间的路径
  • 结点的路径长度

    • 两结点间路径上的分支数
  • 树的路径长度

    • 从树根到每个结点的路径长度之和
    • 将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权
  • 结点的带权路径长度

    • 从根结点到该结点之间的路径长度与该结点的权的乘积
  • 树的带权路径长度

    • 树中所有叶子结点的带权路径长度之和

哈夫曼树的定义

  • 最优二叉树,带权路径长度(WPL)最短的二叉树
    在这里插入图片描述

哈夫曼树的构造

  • 在这里插入图片描述
    在这里插入图片描述

    • 每次从合成后存在的结点中选出两个权最小的进行构造二叉树,直到所有结点均在树中

哈夫曼编码

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 哈夫曼树的应用,数据压缩编码技术,是最优前缀码

  • 基本概念

    • 固定长度编码:在数据通信中,对每个字符用等长二进制位表示

    • 可变长编码:对频率高的字符赋以短编码,而对频率较低的字符则赋以较长一些的编码,起到压缩效果

    • 前缀编码:没有一个编码是另一个编码的前缀

  • 构造哈夫曼编码

    • 将每个出现的字符当作一个独立的结点,其权值为它出现的频度(或次数),构造出对应的哈夫曼树

    • 将字符的编码解释为从根至该字符的路径上边标记的序列

    • 其中边标记为0表示“转向左孩子”,标记为1表示“转向右孩子”
      在这里插入图片描述
      在这里插入图片描述

多叉哈夫曼树(题目考点,类比外部排序的知识点),补0结点(虚叶结点)

并查集

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

基本思路

在这里插入图片描述

  • 存储结构在这里插入图片描述
    在这里插入图片描述

    • 顺序存储,每个集合组织成一棵树,采用双亲表示法
  • 所有表示子集合的树,构成表示全集合的森林,存放在双亲表示数组内

  • 通常用数组元素的下标代表元素名,用根结点的下标代表子集合名

代码实现

在这里插入图片描述
在这里插入图片描述

优化

在这里插入图片描述

小树合并到大树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

压缩路径
  • 压缩路径:查找路径上所有结点都直接挂根结点

在这里插入图片描述

小结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(并的前提是查到根节点)

操作查时间复杂度并时间复杂度
基本操作O(n)O(n^2)
小树合并到大树O(log2n)O(nlog2n)
压缩路径O(d(n))O(nd(n))

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
在这里插入图片描述

并查集应用

  • Cruskal算法、无向图的连通性、无向图是否有环

代码(巨无敌,就两行代码)

  • 原理:每个集合用一棵树表示。树根的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点。
    血的教训!!!
    注意很多题目需要在合并时去最小值,若f数组存父亲值
    f[y]=min(f[x],f[y]),f[x]=min(f[x],f[y]);
    每次执行find操作,确实会让每个节点直接存根节点的值,之后查找的时间复杂度接近O(1),但仅仅是接近,不一定全是1次找到,即之后查找要用find函数而不是直接f[]找。

    const int N=100010;
    int n,m,p[N],j,k;
    string str;
    //并查集核心代码,就两行!!!!
    int find(int x)
    {
        if (p[x] != x) p[x] = find(p[x]);
        return p[x];
    }
    //main函数给大家可以便于理解
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<n+1;i++) p[i]=i;
        for(int i=0;i<m;i++){
            cin>>str>>j>>k;
            if(str=="M") p[find(j)]=find(k);
            else if(find(j)==find(k))
                printf("Yes\n");
            else
                printf("No\n");
        }
    }
    

    在这里插入图片描述

考研真题

408 - 2023

(考研真题待更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1578886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网站想使用https安全协议,必须要安装ssl证书吗?

ssl证书作为保护网站数据传输安全的重要工具&#xff0c;被广泛应用于网站的安全加密通信中。很多人在初次接触ssl证书时&#xff0c;有一个常见的疑问&#xff1a;网站使用https协议必须要ssl证书吗&#xff1f; 答案是肯定的。   HTTPS是一种通过计算机网络进行安全通信的…

MongoDB基本操作之备份与恢复【验证有效】

资源获取 MongoDB Database Tools 解压zip包&#xff0c;将其中的工具复制到bin目录下 mongodump与mongorestore – 备份 mongodump -h localhost:27017 -u admin -p pass --authenticationDatabase admin -d runoob -o /usr/local/mongo/bak/ --forceTableScan –切换数据库…

怎么防止文件被拷贝,复制别人拷贝电脑文件

怎么防止文件被拷贝&#xff0c;复制别人拷贝电,脑文件 防止文件被拷贝通常是为了保护敏感数据、知识产权或商业秘密不被未经授权的人员获取或传播。以下列出了一系列技术手段和策略&#xff0c;可以帮助您有效地防止文件被拷贝。 1. 终端管理软件&#xff1a; 如安企神、域智…

内网穿透的应用-如何使用Docker本地部署Dify LLM结合内网穿透实现公网访问本地开发平台

文章目录 1. Docker部署Dify2. 本地访问Dify3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Linux Ubuntu系统以Docker的方式快速部署Dify,并结合cpolar内网穿透工具实现公网远程访问本地Dify&#xff01; Dify 是一款…

(表征学习论文阅读)A Simple Framework for Contrastive Learning of Visual Representations

Chen T, Kornblith S, Norouzi M, et al. A simple framework for contrastive learning of visual representations[C]//International conference on machine learning. PMLR, 2020: 1597-1607. 1. 前言 本文作者为了了解对比学习是如何学习到有效的表征&#xff0c;对本文所…

Vscode 中调试Django程序

调试介绍: ​​​​​​​Explore the debugger Debug/调试 可以让我们在特定的代码行上暂停程序的运行。当程序暂停时&#xff0c;我们可以查看变量的数值&#xff0c;在“Debug控制台”中运行代码&#xff0c;或利用“Debug”工具提供的其他功能。启动Debugger/调试器会自动…

MAC苹果电脑如何使用Homebrew安装iperf3

一、打开mac终端 找到这个终端打开 二、终端输入安装Homebrew命令 Homebrew官网地址&#xff1a;https://brew.sh/ 复制这个命令粘贴到mac的终端窗口&#xff0c;然后按回车键 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/in…

rsync实时同步(上行同步)

目录 一、实现实时同步 1. 定期同步的不足 2. 实时同步的优点 3. Linux内核的inotify机制 4. 发起端配置rsyncinotify 4.1 修改rsync源服务器配置文件 4.2 调整inotify内核参数 4.3 安装inotify-tools 4.4 在另一个终端编写触发式同步脚本 4.5 验证 二、使用rsync实现…

电脑与多台罗克韦尔AB PLC无线通讯的搭建方法分为几步?

在实际系统中&#xff0c;同一个车间里分布多台PLC&#xff0c;通过上位机集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候&#xff0c;如果布线的话&#xff0c;工程量较大耽误工期&#xff0c;这种情况下比较适合采用无线通信方式。本方案以组态王和2台…

WinForm用微软打包工具打包

WinForm用微软打包工具打包 1. 安装扩展 下载扩展Microsoft Visual Studio Installer Projects 点击扩展 —> 管理扩展 安装完之后重启VS就好了。 2. 新建Set up项目 点击解决方案 —> 添加 —> 新建项目 选择这个Setup Project 创建打包项目 安装项目&…

nandgame中的asm编程PUSH_VALUE、ADD、SUB、NEG、AND、OR

参考&#xff1a;https://zhuanlan.zhihu.com/p/613188641 PUSH_VALUE题目说明及答案 将值推送到堆栈上。 提示&#xff1a;该值将作为宏的替换值提供&#xff0c;但在测试时&#xff0c;您可以在“测试工具”框中设置该值。现在&#xff0c;我们引入了一个使用占位符的宏。宏…

nginx This request has been blocked; the content must be served over HTTPS问题处理

This request has been blocked; the content must be served over HTTPS问题处理 1.问题现象2.解决问题3.解决后的现象4.proxy_set_header x-forwarded-proto 作用 1.问题现象 Mixed Content: The page at https://www.ssjxx.cn/ssjy/viy-edu/index.html?systemCodeTW0010#/…

iOS-获取Xcode工程中文件的路径

1、使用Create folder references的Add folders的方式把文件或者文件夹拖到Xcode工程中 拖入时的设置参考下图 注意拖入到工程之后文件夹是蓝色的&#xff08;Xcode10.1环境&#xff09; 2、代码具体实现&#xff1a; 使用NSBundle的API&#xff0c;然后拼接具体路径即可 NS…

区块链与数字身份:探索Facebook的新尝试

在数字化时代&#xff0c;随着区块链技术的崛起&#xff0c;数字身份成为了一个备受关注的话题。作为全球最大的社交媒体平台之一&#xff0c;Facebook一直在探索如何利用区块链技术来改善数字身份管理和用户数据安全。本文将深入探讨Facebook在这一领域的新尝试&#xff0c;探…

【ArcGIS微课1000例】0109:ArcGIS计算归一化水体指数(NDWI)

文章目录 一、加载数据二、归一化水体指数介绍三、归一化水体指数计算四、注意事项一、加载数据 加载配套数据0108.rar(本实验的数据与0108的一致)中的Landsat8的8个单波段数据,如下所示: Landsat8波段信息对照表如下表所示: 接下来学习在ArcGIS平台上,基于Landsat8数据…

GPT-4对多模态大模型在多模态预训练、 理解生成上的启发

传统人工智能 模型往往依赖大量有标签数据的监督训练,而且一个模型一般只能解决一个任务,仅适用于单一场景, 这使得人工智能的研发和应用成本高,场景适应能力弱,难以规模化应用。 常见的多模态任务大致可以分为两类: 多模态理解任务,如视频 分类、视觉问答、跨模态检索、指代…

5G如何助力物流智能化转型

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;你的老朋友&#xff0c;老K。行业群 新书《智能物流系统构成与技术实践》人俱乐部 整版PPT和更多学习资料&#xff0c;请球友到知识星球 【智能仓储物流技术研习社】自行下载 智能制造-话题精读 1、西门子…

Maven的scope详解

依赖范围介绍 maven 项目不同的阶段引入到classpath中的依赖是不同的&#xff0c;例如&#xff0c;编译时&#xff0c;maven 会将与编译相关的依赖引入classpath中&#xff0c;测试时&#xff0c;maven会将测试相关的的依赖引入到classpath中&#xff0c;运行时&#xff0c;mav…

菜狗学前端之JS高级笔记

老样子。复制上来的图片都没了&#xff0c;想看原版可以移步对应资源下载(资源刚上传&#xff0c;还在审核中) (免费) JS高级笔记https://download.csdn.net/download/m0_58355897/89102910 一些前提概念 一 什么是js高级 js高级是对js基础语法的一个补充说明&#xff0c;本质…

JetBrains IDE(IDEA/WebStorm)配置GitHub Copilot

关于 GitHub Copilot 和 JetBrains IDE GitHub Copilot 在编写代码时提供 AI 对程序员的自动完成样式的建议。 有关详细信息&#xff0c;请参阅“关于 GitHub Copilot Individual”。 如果使用 JetBrains IDE&#xff0c;可以直接在编辑器中查看并合并来自 GitHub Copilot 的…