【Java数据结构】二叉树详解(四)

🔒文章目录:

1.❤️❤️前言~🥳🎉🎉🎉

2.给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 

2.1第一种思路 

2.2第二种思路  

3.根据一棵树的前序遍历与中序遍历构造二叉树 

4.根据一棵树的中序遍历与后序遍历构造二叉树 

5.二叉树创建字符串

6.二叉树非递归实现前序遍历

 7.二叉树非递归实现中序遍历

8.二叉树非递归实现后序遍历

9.总结


1.❤️❤️前言~🥳🎉🎉🎉

Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。

如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的内容感兴趣,记得关注我👀👀以便不错过每一篇精彩。

当然,如果在阅读中发现任何问题或疑问,我非常欢迎你在评论区留言指正🗨️🗨️。让我们共同努力,一起进步!

加油,一起CHIN UP!💪💪

🔗个人主页:E绵绵的博客
📚所属专栏:

1. JAVA知识点专栏

        深入探索JAVA的核心概念与技术细节

2.JAVA题目练习

        实战演练,巩固JAVA编程技能

3.c语言知识点专栏

        揭示c语言的底层逻辑与高级特性

4.c语言题目练习

        挑战自我,提升c语言编程能力

📘 持续更新中,敬请期待❤️❤️

2.给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 

 📌题目描述 

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)” 


2.1第一种思路 

📋题目思路 

  1. 首先,检查根节点是否为null,如果是,则返回null。这是递归算法的基本情况之一,用于处理空树的情况。

  2. 接下来,检查根节点是否等于其中一个指定节点,如果是,则返回根节点。这是另一个基本情况,处理了当根节点就是目标节点之一的情况。

  3. 然后,分别递归地在左子树和右子树中寻找指定节点的最近公共祖先,并将结果存储在left和right变量中。

  4. 如果左右子树中都找到了指定节点,则说明当前根节点就是这两个节点的最近公共祖先,返回当前根节点。

  5. 如果只有一个子树找到了指定节点,那么这个子树的返回值就是这两个节点的最近公共祖先,返回该子树的返回值。

  6. 如果左右子树都没有找到指定节点,则返回null。

这个算法是一个递归算法,通过深度优先搜索遍历整个树从而查找最近公共祖先。

⏳题目代码  

 // 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
            public BTNode lowestCommonAncestor(BTNode root, BTNode p, BTNode q) {
                      if(root==null)
                          return null;
                      if(root==p||root==q)
                          return  root;
                      BTNode left=lowestCommonAncestor(root.left,p,q);
                      BTNode right=lowestCommonAncestor(root.right,p,q);
                      if(left!=null&&right!=null)
                          return  root;
                      if(left==null&&right!=null)
                          return  right;
                      if(left!=null&&right==null)
                          return  left;
                      if(left==null&&right==null)
                          return  null;

                      return  null;
            }

2.2第二种思路  

📋题目思路  

  1. 首先定义了一个lowestCommonAncestor方法,接收三个参数:根节点root,和两个指定节点pq

  2. 创建了两个Stack对象,stack1stack2,用于分别存储从根节点到指定节点pq的路径。

  3. 调用getStack方法分别获取从根节点到pq的路径,并将路径存储在stack1stack2中。

  4. 如果两条路径都成功获取,则进入后续处理。

  5. 获取到路径后,计算两个栈的大小,并确保它们在最后一个共同节点处相等。如果不相等,则将较长的栈中的节点出栈,直到两个栈的大小相等为止。

  6. 然后,同时从两个栈中弹出元素,直到找到最后一个相同的节点。这个节点就是最近的公共祖先。

  7. 如果没有找到共同节点,返回null。

  8. getStack方法中,也是一个递归方法,用于获取从根节点到指定节点的路径。它接收一个栈对象、根节点和目标节点作为参数。

  9. 如果根节点为null,返回false。

  10. 将当前节点加入栈中。

  11. 如果当前节点是目标节点,则返回true。

  12. 否则,递归地在左子树和右子树中查找目标节点。如果找到目标节点,则直接退出该方法且返回true。否则将栈顶元素弹出,并返回false。

我们这第二种思路利用栈和递归去解决问题的,比第一种思路要相对复杂点。

 ⏳题目代码  

   public BTNode lowestCommonAncestor(BTNode root, BTNode p, BTNode q) {
        Stack<BTNode> stack1=new Stack<>();
        Stack<BTNode> stack2=new Stack<>();
         if (getStack(stack1,root,p)&&getStack(stack2,root,q)){
             int a= stack1.size();
             int b= stack2.size();
            while(a!=b){
                if(a>b) {
                    stack1.pop();
                    a--;
                }
                else{
                    stack2.pop();
                    b--;
            }}
            while(!stack1.isEmpty()){
                if(stack1.peek()==stack2.peek())
                    return  stack1.peek();
                else
                    stack1.pop();
                    stack2.pop();
            }
                 return  null;
         }

         return  null;
    }

     public boolean getStack(Stack<BTNode> stack,BTNode root,BTNode p){
                  if(root==null)
                    return false;
              stack.push(root);
                 if (root==p)
                  return true;
              if(!(getStack(stack,root.left,p)||getStack(stack,root.right,p))) {
                  stack.pop();
                  return false;
              }
              return true;
     }

该题链接:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 


3.根据一棵树的前序遍历与中序遍历构造二叉树 

 📌题目描述 

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。


 📋题目思路 

我们需要实现一个构建二叉树的方法 buildTree,根据给定的先序遍历数组 preorder 和中序遍历数组 inorder,返回构建的二叉树的根节点。其中,通过静态内部类 TreeNode 来表示二叉树的每个节点,每个节点有一个值 value 和两个指向左右子树的 left、right 指针。

具体实现思路是:先序遍历数组 preorder 的第一个元素为当前根节点,然后在中序遍历数组 inorder 中找到该根节点的位置,从而确定左右子树的范围。而后通过递归方式依次构建左右子树,并返回当前节点,最终返回整棵二叉树的根节点。

其中,我们还要有getIndex 方法用于在中序遍历数组中查找指定值的位置,还需要通过设置成员变量i去遍历先序数组中的元素。

 ⏳题目代码 

//给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,
// 请构造二叉树并返回其根节点。
public class Test3 {
    public int i;

    static class TreeNode {
        int value;
        TreeNode left;
        TreeNode right;

        public TreeNode(int value) {
            this.value = value;
        }
    }

    public TreeNode buildTree(int[] preorder, int[] inorder) {
         return    build(preorder,inorder,0,inorder.length-1);
    }

    public int getIndex(int[] inorder,int value,int began,int end){
        for (int j = began; j <=end ; j++) {
            if(inorder[j]==value)
                return  j;
        }
        return  -1;
    }
    public  TreeNode  build(int[] preorder,int[] inorder,int began,int end) {
        if(began>end)
            return  null;
        TreeNode treeNode = new TreeNode(preorder[i]);
        int index = getIndex(inorder, preorder[i], began,end);
        i++;
        treeNode.left = build(preorder,inorder,began,index-1);
        treeNode.right=build(preorder,inorder,index+1,end);
        return  treeNode;
    }


}

该题链接:根据一棵树的前序遍历与中序遍历构造二叉树 


4.根据一棵树的中序遍历与后序遍历构造二叉树 

 📌题目描述 

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。


 📋题目思路  

跟我们上一题思路差不多

我们需要实现一个构建二叉树的方法 buildTree,根据给定的后序遍历数组 postorder 和中序遍历数组 inorder,返回构建的二叉树的根节点。其中,通过静态内部类 TreeNode 来表示二叉树的每个节点,每个节点有一个值 value 和两个指向左右子树的 left、right 指针。

具体实现思路是:后序遍历数组 postorder 的最后一个元素为当前根节点,然后在中序遍历数组 inorder 中找到该根节点的位置,从而确定左右子树的范围。而后通过递归方式依次构建左右子树,并返回当前节点,最终返回整棵二叉树的根节点。

 ⏳题目代码 

//给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,
// 请你构造并返回这颗 二叉树 。
public class Test4 {
    public int i;

    static class TreeNode {
        int value;
       TreeNode left;
       TreeNode right;

        public TreeNode(int value) {
            this.value = value;
        }
    }
    public TreeNode buildTree(int[] inorder, int[] postorder) {
        i=postorder.length-1;
        return    build(postorder,inorder,0,inorder.length-1);
    }

    public int getIndex(int[] inorder,int value,int began,int end){
        for (int j = began; j <=end ; j++) {
            if(inorder[j]==value)
                return  j;
        }
        return  -1;
    }
    public TreeNode build(int[] preorder, int[] inorder, int began, int end) {
        if(began>end)
            return  null;
        TreeNode treeNode = new TreeNode(preorder[i]);
        int index = getIndex(inorder, preorder[i], began,end);
        i--;
        treeNode.right = build(preorder,inorder,index+1,end);
        treeNode.left=build(preorder,inorder,began,index-1);
        return  treeNode;
    }


}

 该题链接:根据一棵树的中序遍历与后序遍历构造二叉树 


5.二叉树创建字符串

📌题目描述 

给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。

空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。


  📋题目思路  

  1. 定义了一个Solution1类,其中包含了一个静态内部类TreeNode,用于表示二叉树的节点。

  2. tree2str方法是转换函数的入口,接收一个根节点root,返回转换后的字符串。

  3. 创建了一个StringBuilder对象stringBuilder,用于拼接转换后的字符串。

  4. 如果根节点为null,直接返回空字符串。

  5. 将根节点的值添加到stringBuilder中。

  6. 调用getString方法来递归构建字符串。

  7. getString方法是递归构建字符串的核心方法,接收一个StringBuilder对象和当前节点作为参数。

  8. 如果当前节点的左右子节点都为空,说明当前节点是叶子节点,直接返回。

  9. 根据当前节点的左右子节点情况,按照题目要求构建字符串:

    • 如果左子节点为空而右子节点不为空,则添加"()"和右子节点的值。
    • 如果右子节点为空而左子节点不为空,则添加左子节点的值。
    • 如果左右子节点都不为空,则添加左子节点的值和右子节点的值。
  10. 继续递归调用getString方法处理左右子节点。

  11. 最后返回构建好的字符串。

 ⏳题目代码 

//给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。
class Solution1 {
    static class TreeNode {
        int value;
        TreeNode left;
        TreeNode right;

        public  TreeNode(int value) {
            this.value = value;
        }
    }
    public String tree2str(TreeNode root) {
        StringBuilder stringBuilder=new StringBuilder();
              if(root==null)
            return  stringBuilder.toString();
            stringBuilder.append(root.value);
           getString (stringBuilder,root);
          return   stringBuilder.toString();
    }
    public void getString(StringBuilder stringBuilder,TreeNode root){
        if(root.left==null&&root.right==null)
            return  ;

            if(root.left==null&&root.right!=null) {
                stringBuilder.append("()");
                stringBuilder.append("(");
                stringBuilder.append(root.right.value);
                getString(stringBuilder,root.right);
                stringBuilder.append(")");
            }
            if(root.left!=null&&root.right==null){
                stringBuilder.append("(");
                stringBuilder.append(root.left.value);
                getString(stringBuilder,root.left);
                stringBuilder.append(")");
            }
            if(root.left!=null&&root.right!=null){
                stringBuilder.append("(");
                stringBuilder.append(root.left.value);
                getString(stringBuilder,root.left);
                stringBuilder.append(")");
                stringBuilder.append("(");
                stringBuilder.append(root.right.value);
                getString(stringBuilder,root.right);
                stringBuilder.append(")");
            }
    }


}

该题链接:二叉树创建字符串 


6.二叉树非递归实现前序遍历

📌题目描述 

用非递归的方式(循环方式)实现前序遍历

 📋题目思路  

  1. 定义了一个preorderTraversal方法,接收一个根节点root,返回树的前序遍历结果。

  2. 创建了一个ArrayList对象list,用于存储遍历结果。

  3. 创建了一个Stack对象stack,用于辅助遍历。

  4. 如果根节点为null,直接返回空的遍历结果列表。

  5. 进入循环,直到根节点为null并且栈为空为止。

  6. 内部循环:在每次循环中,将当前节点的值加入到遍历结果列表中,并将当前节点入栈。然后,沿着左子树一直向下遍历,直到遇到没有左子节点的节点为止。

  7. 一旦当前节点的左子树遍历完成,将当前节点出栈,并将当前节点指向其右子节点。

  8. 重复步骤6和7,直到遍历完成。

  9. 返回遍历结果列表。

 ⏳题目代码

   public List<Integer> preorderTraversal(BTNode root) {
                  List<Integer> list=new ArrayList<>();
                      Stack<BTNode> stack=new Stack<>();
                      if(root==null)
                          return list;
                      while(root!=null||!stack.isEmpty()){
                       while(root!=null){
                        list.add(root.value);
                        stack.push(root);
                        root=root.left;
                    }
                  root= stack.pop().right;
           }
                      return list;
        }

 该题链接:二叉树非递归实现前序遍历


 7.二叉树非递归实现中序遍历

📌题目描述 

用非递归的方式(循环方式)实现中序遍历

  📋题目思路  

  1. 定义了一个inorderTraversal方法,接收一个根节点root,返回树的中序遍历结果。

  2. 创建了一个ArrayList对象list,用于存储遍历结果。

  3. 创建了一个Stack对象stack,用于辅助遍历。

  4. 如果根节点为null,直接返回空的遍历结果列表。

  5. 进入循环,直到根节点为null并且栈为空为止。

  6. 内部循环:在每次循环中,将当前节点的所有左子节点入栈,直到当前节点为空。

  7. 出栈一个节点,并将其右子节点作为当前节点。

  8. 将出栈节点的值添加到遍历结果列表中。

  9. 重复步骤6到8,直到遍历完成。

  10. 返回遍历结果列表。

  ⏳题目代码

public List<Integer> inorderTraversal(BTNode root) {
        List<Integer> list=new ArrayList<>();
        Stack<BTNode> stack=new Stack<>();
          if(root==null)
              return list;
          while(root!=null||!stack.isEmpty()){
              while (root!=null){
                  stack.push(root);
                  root=root.left;
              }
               BTNode btNode=stack.pop();
              root=btNode.right;
              list.add(btNode.value);
          }
          return list;
    }

该题链接 :二叉树非递归实现中序遍历


8.二叉树非递归实现后序遍历

📌题目描述 

用非递归的方式(循环方式)实现后序遍历

 📋题目思路  

  1. 定义了一个postorderTraversal方法,接收一个根节点root,返回树的后序遍历结果。

  2. 创建了一个ArrayList对象list,用于存储遍历结果。

  3. 创建了一个Stack对象stack,用于辅助遍历。

  4. 如果根节点为null,直接返回空的遍历结果列表。

  5. 进入循环,直到根节点为null并且栈为空为止。

  6. 内部循环:在每次循环中,将当前节点的所有左子节点入栈,直到当前节点为空。

  7. 在每次内部循环结束后,通过stack.peek()获取当前栈顶节点,将其赋值给btNode

  8. 定义prev节点,初始化为当前栈顶节点。

  9. root指向btNode的右子节点。

  10. 如果root为null,说明当前节点的左右子树已经遍历完毕,将当前节点的值加入到遍历结果列表中,并将栈顶节点出栈。

  11. 检查栈是否为空,如果为空,则遍历结束,返回结果列表。

  12. 如果栈不为空,则将root重新指向栈顶节点的右子节点,然后从栈中取出节点,直到当前root节点与prev节点的右子节点不相等为止,将取出的节点加入到结果列表中。

  13. 重复步骤6到12,直到遍历完成。

  14. 返回遍历结果列表。

 ⏳题目代码

   public List<Integer> postorderTraversal(BTNode root) {
        List<Integer> list=new ArrayList<>();
        Stack<BTNode> stack=new Stack<>();
          if(root==null)
              return list;
          while (root!=null||!stack.isEmpty()){
              while(root!=null){
                  stack.push(root);
                  root=root.left;
              }
            BTNode btNode= stack.peek();
              BTNode prev=btNode;
              root=btNode.right;

              if(root==null){
                 list.add(stack.pop().value);
                 if (stack.isEmpty())
                     return list;
                 root=stack.peek().right;
                 while (root==prev){
                     prev=stack.pop();
                 list.add(prev.value);
                   if(stack.isEmpty())
                       return  list;
                 root=stack.peek().right;
                 }
          }}
          return  list;
    }


}

该题链接:二叉树非递归实现后序遍历 

9.总结 

所以我们这一篇文章就把二叉树的相关习题全讲解完了,二叉树这一章节也就全部结束了。下篇文章将会给大家带来 优先级队列(堆)的讲解。在此,我们诚挚地邀请各位大佬们为我们点赞、关注,并在评论区留下您宝贵的意见与建议。让我们共同学习,共同进步,为知识的海洋增添更多宝贵的财富!🎉🎉🎉❤️❤️💕💕🥳👏👏👏

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

短视频外卖平台区域代理怎么拿?两种方法!

抖音外卖平台区域代理怎么拿&#xff1f;市面上只有两种途径可走。没有其他任何方法。 一是拿抖音官方区域服务商身份&#xff0c;第一个要求是保证金50万&#xff0c;公司必须还要有20个人以上的社保证明。同时还要提供企业半年的银行资金流水。如果小型公司基本是不用考虑的…

pcb实验六-元件设计

目录 一&#xff0c;绘制28管脚PLCC封装ATF750C-10JC元件 二&#xff0c;绘制变压器原理图符号&#xff0c;并生成各种库文件输出报表 1&#xff0c;绘制变压器原理图 2&#xff0c;添加封装 3&#xff0c;输出报表文件 三&#xff0c;绘制音乐集成芯片及LCD元件 1&…

隐马尔可夫模型

目录 1. 通信系统 2. 各种“马尔可夫”们 2.1 马尔可夫假设 2.2 马尔可夫链 2.3 隐马尔可夫模型 2.3.1 将隐马尔可夫模型应用于解码问题 2.3.2 如何训练隐马尔可夫模型 2.3.2.1 有监督的训练 2.3.2.2 无监督的训练 1. 通信系统 通信的本质就是一个【编码传输解码】的…

【C++】STL:栈和队列模拟实现

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

【设计模式深度剖析】【2】【行为型】【命令模式】| 以打开文件按钮、宏命令、图形移动与撤销为例加深理解

&#x1f448;️上一篇:模板方法模式 | 下一篇:职责链模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 文章目录 命令模式定义英文原话直译如何理解呢&#xff1f; 四个角色1. Command&#xff08;命令接口&#xff09;2. ConcreteCommand&#xff08;具体命令类&…

linux进程间通讯指南-打通IPC大门,高效沟通无阻

在现代操作系统中&#xff0c;进程就像独立的个体&#xff0c;有时需要相互合作、数据共享&#xff0c;这就要求进程间能够高效通信。本文将为你揭开Linux进程间通信(IPC)的神秘面纱&#xff0c;探讨各种IPC工具的运作原理&#xff0c;同步机制的重要性&#xff0c;以及如何规避…

Ubuntu安装cuda

文章目录 前言一、安装NVIDIA驱动1.1 过程中的问题1.2 解决方法1.3 重启后出现 perform MOK management 二、安装Cuda2.1 检查是否安装显卡驱动2.2 安装Cuda2.3 验证CUDA是否安装成功 三、配置环境变量---未完2.4 图片居中加调整大学 总结 #pic_center 前言 只是为方便学习&…

淘宝扭蛋机源码解析:功能实现与技术细节

随着在线购物和娱乐的融合&#xff0c;淘宝扭蛋机作为一种创新的购物娱乐方式&#xff0c;受到了广大用户的喜爱。本文将深入解析淘宝扭蛋机的源码&#xff0c;探讨其功能实现与技术细节&#xff0c;以期为开发者们提供一些有价值的参考。 一、功能实现 1.用户登录与注册 淘宝…

win11通过网线分享网络到Ubuntu工控机

1.条件&#xff1a;一个能无线联网的win11&#xff0c;一根网线&#xff0c;一台Ubuntu工控机&#xff0c;并且使用网线连接两者 2.在win11电脑上 2.1 打开控制面板的网络和Internet 2.2 进入网络和共享中心&#xff0c;在左侧进入 更改适配器设置 2.3 在WLAN上右键&#xff0…

R语言数据探索和分析21-中国GDP及其影响因素多元线性回归分析

一、研究背景和意义 GDP 是宏观经济中最受关注的经济统计数字&#xff0c;目前我国国内生产总值年均增长率均明显高于同期美、日等发达经济体和巴 西、俄罗斯、南非、印度等其他金砖国家&#xff0c;成为世界经济增长的主力军&#xff0c;GDP 的增长对一个国家有着十分重要的意…

TSINGSEE青犀视频:城市道路积水智能监管,智慧城市的守护者

随着城市化进程的加快&#xff0c;城市道路网络日益复杂&#xff0c;尤其在夏季&#xff0c;由于暴雨频发&#xff0c;道路积水问题成为影响城市交通和市民生活的重要因素之一。传统的道路积水监测方式往往依赖于人工巡逻和简单的监控设备&#xff0c;这些方法存在效率低下、响…

软信天成:告别数据脏乱差!企业数据清洗实战方案分享

低质量数据普遍存在。据统计&#xff0c;数据质量问题每年给企业造成高达3.1万亿美元的损失。为了防范这种损失&#xff0c;越来越多的企业采用数据清洗来清洗数据&#xff0c;提高数据质量。 数据清洗&#xff0c;顾名思义是将数据上“脏”的部分清洗掉&#xff0c;让数据变得…

读《淘宝技术这10年》:从进化中感受技术的美与挑战

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好,我是小米,一个29岁的程序员,喜欢分享技术干货。今天,我想和大家聊一聊我最近读的一本书——《淘宝技术这10年》。这本书让我深刻领悟…

JetBrains PhpStorm 激活码限时特惠 7.1 折快抢!

各位程序员&#xff0c;每天敲代码真的需要一款好用的 IDE&#xff0c;大名鼎鼎的 JetBrains 值得信赖&#xff01;PHP 开发看过来&#xff0c;PhpStorm 个人版首年订阅 618 限时特惠 7.1 折&#xff0c;有需要的朋友一定不要错过&#xff01; PhpStorm 汇集了众多效率功能和集…

【微信小程序】网络请求

出于安全性方面的考虑&#xff0c;小程序官方对数据接口的请求做出了如下两个限制&#xff1a; 只能请求HTTPS类型的接口必须将接口的域名添加到信任列表中 登录微信小程序管理后台->开发->开发设置->服务器域名->修改request合法域名。 注意事项&#xff1a; 域…

视频汇聚EasyCVR安防监控系统GA/T 1400协议视图库对接:技术实现与应用

随着信息技术的不断发展&#xff0c;各类协议标准在各个领域得到了广泛应用。GA/T1400协议作为公安视频监控系统中的一种重要标准&#xff0c;对于提升公安工作的信息化水平、加强社会治安防控具有重要意义。本文将重点探讨GA/T1400协议视图库对接的技术实现及应用价值。 一、…

领菲linfeeLNF96E多功能电力仪表智能数码液晶显示三相电压电流表

品牌 LINFEE 型号 LNF96E 货号 LNF96E 产地 中国大陆 省份 江苏省 地市 无锡市 装修及施工内容 安装工程 电源电路 交流电表 电表类型 多功能电度表 颜色分类 LNF96E-C,LNF96E-CM,LNF96E-CJ,LNF96E-CK,LNF96E-CJK,LNF96E-CMJK 多功能电力仪表,LNF96E三相多…

c语言练习:POJ 1003 宿醉(HangOver)

为什么写这篇文章 作为一名计算机相关方向的学生&#xff0c;本人的代码能力却十分差劲&#xff0c;这不能不让人万分羞愧。于是&#xff0c;决定从此好好学代码&#xff0c;每天坚持刷题。而C语言是计算机程序语言的基础&#xff0c;遂决定从c语言开始&#xff0c;提高自身编…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:中国舰船研究院

中国舰船研究院又称中国船舶重工集团公司第七研究院&#xff0c;隶属于中国船舶重工集团公司&#xff0c;是专门从事舰船研究、设计、开发的科学技术研究机构&#xff0c;是中国船舶重工集团公司的军品技术研究中心、科技开发中心&#xff1b;主要从事舰船武器装备发展战略研究…

图神经网络实战(12)——图同构网络(Graph Isomorphism Network, GIN)

图神经网络实战&#xff08;12&#xff09;——图同构网络 0. 前言1. 图同构网络原理2. 构建 GIN 模型执行图分类2.1 图分类任务2.2 PROTEINS 数据集分析2.3 构建 GIN 实现图分类2.4 GCN 与 GIN 性能差异分析 3. 提升模型性能小结系列链接 0. 前言 Weisfeiler-Leman (WL) 测试…