精华内容
下载资源
问答
  • 2018-08-17 22:01:27

    python实现二叉树和二叉树遍历可以拆分为以下几步:

    一 构建结点Node:

    我们知道二叉树的结点Node,可以有数据域,左孩子,和右孩子,三部分,那么我们就建结点类(如果基本概念不明白,可以先百度一下树和二叉树的一些定义,快速理解下)

    class Node(object):
        def __init__(self,item):
            """
            param: self.elem 是结点的数据域
                    self.lchild 是结点的左孩子
                    self.rchild 是结点的右孩子
            """
            self.elem = item
            self.lchild = None
            self.rchild = None

    二 利用上面的结点构建一个树类

    class Tree(object):
        def __init__(self):
            self.root = None

    好,完了

    开什么玩笑,打你喔,空数也是一棵树嘛

    树添加结点的方法

     def add(self,item):
            """
            param: item 是传进来来的数据,我们要实例化一个结点取接收他,但是他的位置要放在树梢,不能乱插入
                    queue 我们创建一个队列来接收和弹出结点,这样我们找到结点需要接收的位置
            """
            node = Node(item)
            if self.root is None:
                """如果根结点是None,是一颗空数,我们就把node赋值给root,那么下面的while循环是不会受影响的,因为是队列[None]的bool值是True"""
                self.root = node
                return 
            queue = [self.root]
            while queue:
                """队列的弹出要加0,与栈相仿"""
                cur_node = queue.pop(0)
                if cur_node.lchild is None:
                    """这里有空位,我们插入结点,如果能插入,就完事了"""
                    cur_node.lchild = node
                    return
                else:
                    """cur_node的左孩子我们放进队列中,下次循环左子结点"""
                    queue.append(cur_node.lchild)
                
                """同理对右边的操作一样,还是手敲下吧"""
                
                if cur_node.rchild is None:
                    cur_node.rchild = node
                    return
                else:
                    queue.append(cur_node.rchild)

    广度遍历(又叫层次遍历,是一层一层从左到右的数下去)

    def breadth_travel(self):
            """广度遍历与结点的添加非常相似,广度遍历不用插入结点了,在循环里面的条件和添加的相仿"""
            if self.root is None:
                return 
            queue = [self.root]
    
            while queue:
                cur_node = queue.pop(0)
                # 我们打印看看结点的遍历顺序对不对
                print(cur_node.elem)
                if cur_node.lchild is not None:
                    # 扔进队列循环
                    queue.append(cur_node.lchild)
                if cur_node.rchild is not None:
                    queue.append(cur_node.rchild)

    深度遍历:前序 中序 后序遍历

    这些最好画图去理解下,代码用递归的非常简单

      # 前序遍历
        def preorder(self,node):
            if node is None:
                return 
            
            # 下面三行代码顺序,深度先序遍历是先根结点,再左孩子,再右孩子
            print(node.elem)
            self.preorder(node.lchild)
            self.preorder(node.rchild)
            
            # 中序遍历
        def inorder(self,node):
            if node is None:
                return 
            
            # 下面三行代码顺序,
            self.preorder(node.lchild)
            print(node.elem)
            self.preorder(node.rchild)
        
                
            # 后序遍历
        def portorder(self,node):
            if node is None:
                return 
            
            # 下面三行代码顺序,
            self.preorder(node.lchild)
            self.preorder(node.rchild)
            print(node.elem)
        

     

    更多相关内容
  • OpenCV源代码构建

    千次阅读 2022-02-22 20:39:05
    1. 实验环境 Windows10 64位系统 cmake3.13.2 opencv3.4.16 visual studio 2017 2. 下载软件 2.1 opencv源码 在https://opencv.org/releases/网页中,我们找到...3. 构建代码 3.1 解压源代码 将2.1中下载好的openCV

    1. 实验环境

    Windows10 64位系统
    cmake3.13.2
    opencv3.4.16
    visual studio 2017

    2. 下载软件

    2.1 opencv源码

    在https://opencv.org/releases/网页中,我们找到OpenCV3.4.16版本,选择Sources源代码下载。

    2.2 cmake

    在 https://cmake.org cmake的官网中,我们下载cmake,用于opencv源码的构建。

    3. 构建源代码

    3.1 解压源代码

    将2.1中下载好的openCV源代码解压,笔者解压的路径为“D:\develop\code\opencv\opencv-3.4.16”。解压
    完成后,我们在文件下创建一个build文件夹,用于存放构建后的代码。
    build路径为:“D:\develop\code\opencv\opencv-3.4.16/build”。

    3.2 开始构建

    1. 打开cmake文件。在源码路径和构建路径中,选择我们3.1中创建的两个路径。
      在这里插入图片描述

    2. 点击下方的“Configure”按钮,由于笔记电脑安装的是Visual Studio 2017并且系统为64位,所以我选择的是
      Visual Studio 15 2017 Win64 来构建OpenCV源码。点击确定后,一定要在中间的找到BUILD_opencv_world
      并且勾选。然后点击"Generate"按钮。构建完成。

    3.3 编译

    在"D:\develop\code\opencv\opencv-3.4.16/build" 找到OpenCV.sln工程文件。打开Visual Studio工程。
    在Visual Studio菜单中找到 Build->Batch Build。
    在这里插入图片描述

    在Build这一列中,确保ALL_BUILD和INSTALL都勾选上。然后点击生成解决方案。
    等待编译完成后,在"D:\develop\code\opencv\opencv-3.4.16\build\install\x64\vc15\lib"路径下
    我们就能找到opencv_world3416.lib文件了。

    到这里OpenCV的源代码构建就完成了,下一章,我们将会把OpenCV集成到Qtcreator环境中。

    展开全文
  • 致力于低代码搭建IOT平台,持续将业务抽象 成通用的模块、组件、表单等,并经过项目应用实践沉淀和持续优化,形成了一款拥有完全自主知识产权、 图形化开发、全面快速感知、快速构建不同行业应用、开放的物联网平台...

    物联网(Internet of Things,IoT)是普遍联系的网络,是基于互联网、电信网等信息网络的承载体,可以视为互联网的延伸和升级,是科学技术发展的必然,也被称为继计算机、互联网和移动通信网络之后的第三次信息技术革命。

    稳定、灵活、通用的物联网产品架构对促进物联网健康、规模发展具有重要意义,也是研究和关注的焦点,如欧洲IoT-A 项目,并不研究智慧城市、智慧农业、智慧电网、智慧医疗等具体应用领域架构,而是从跨应用领域的角度出发研究。我国也设立了国家专项项目进行研究,为物联网建设提供宏观参考指导。

    AIRIOT 物联网平台开发框架(以下简称“AIRIOT”)自2011年开始秉承国家物联网建设的发展指导思想,对多个不同的行业业务进行研究分析,在性能稳定、架构灵活的基础上,持续将业务抽象成通用的模块、组件、表单等,并经过9年的项目应用实践检验,持续优化,逐步形成了一款拥有完全自主知识产权、图形化开发、全面快速感知(驱动覆盖95%以上感知设备)、快速构建不同行业应用、开放的物联网平台开发框架产品,已在石油、电力、管网领域以及高校物联网、自动化等专业应用。

     

    AIRIOT的产品定位

    社会上有越来越多的专注行业的物联网平台纷纷涌现,这些平台纷繁复杂,琳琅满目。但是各行各业都需要建设符合行业特点的物联网应用平台,企业管理者对于平台的应用变更得不到快速响应,大量的开发时间用在企业管理者、专业技术人员与程序员之间的沟通上,企业需要一种用户可快速实现物联网应用的开发工具,AIRIOT就是一款拥有完全自主知识产权的低代码物联网平台开发工具,可快速生成物联网应用平台。

    AIRIOT是Accelerate Industry Relationship Internet of Things 的缩写,意为加速工业关系变革的物联网工具,根据工业物联网平台标准架构设计,抽象了很多基础概念、基本元素、通用组件,同时丰富了通用接口,能够满足各行业用户快速构建定制化应用的需求,降低了对平台开发人员的编程能力要求,快速响应用户需求的频繁变更,让平台运维变得更加简单便捷。

     

    通过简单的学习,不管是终端设备商、平台服务商、通信运营商、网络设备服务商、解决方案提供商的技术人员,还是企业管理人员,都能够基于AIRIOT 快速构建物联网应用平台,不仅可节约开发的时间成本和人工成本,也让企业自己的人员能够自主开发物联网应用平台,让平台开发人员更加关注企业的业务本身和物联网平台的实用效果,而不是开发编程。

    AIRIOT的可视化功能使其成为一款所见即所得的物联网平台通用开发工具,是快速开发稳定健壮的物联网应用平台的必备软件;此外,AIRIOT 内部集成了丰富的驱动,已成为各类物联网设备驱动翻译器,也是为万物互联赋能的新型平台开发工具。

    物联网平台_数采平台_工业物联网 ——低代码搭建IOT平台 | AIRIOT 让物联网项目更简单AIRIOT品牌隶属于航天科技控股集团股份有限公司(以下简称“航天科技”),是航天科技旗下物联网平台开 发框架产品,由航天科技智慧物联事业部历时10年倾力打造,致力于低代码搭建IOT平台,持续将业务抽象 成通用的模块、组件、表单等,并经过项目应用实践沉淀和持续优化,形成了一款拥有完全自主知识产权、 图形化开发、全面快速感知、快速构建不同行业应用、开放的物联网平台。https://airiot.cn

    AIRIOT 特性

    1、模型化管理

    AIRIOT 采用模型化管理设计,奖一类事物或设备属性抽象为统一的模型,通过一次模型配置,实现同类型设备复用的效果,配置的属性包括基础属性、设备配置、报警配置、流计算数据点、画面配置、地理信息配置、网络检查、自定义属性、事件配置等,模型化的实现增强了管理的统一性、便捷性和高效性。

    2、快速的图形化业务流程开发

    AIRIOT 采用React+Antd 技术,并支持移动端H5技术,支持任意组件进行动画配置、布局配置、事件配置等,用户可以通过拖拽组件的方式实现业务流程开发,大幅缩减开发成本和周期,提高开发效率。

    3、自定义报表

    AIRIOT 的报表是系统参数显示的记录表格,支持用户自定义,可根据实际需要显示参数,并可随时修改。报表可以制作二级表头,同时报表筛选也支持用户自定义,提升了报表的灵活性。

    4、智能报警

    AIRIOT 支持简单和复杂逻辑报警规则自定义,用户可根据业务需求定制报警规则和报警信息的全方位推送,实现精准报警,避免误报漏报。同时,AIRIOT 支持报警信息大数据分析,通过报警模型优化设计,实现资产的智能预诊。

    5、高效的数据自由采集

    AIRIOT 支持两百余种常见的主流驱动及私有协议,包括通用驱动(Modbus/TCP、OPC-DA、OPC-UA、MQTT 等)、无线驱动(Lora、OneNet 等)、厂商驱动(AB、西门子、倍福等)、行业驱动等,目前已覆盖市场在用设备的95%以上,可实现各类设备、系统数据的快速接入;同时,支持基于SDK 快速开发驱动,提供便捷的在线调试工具,提高开发效率。

    6、海量数据高效处理

    AIRIOT 适配国产时序数据库涛思 TDEngine、兼容 influxDB 等国内外主流时序数据库。其中,TDEngine 采用分布式高可靠架构设计,完全去中心化的时序数据处理引擎,写入速度达100万数据点/秒,读取速度达1000万数据点/秒,适用于高速增长的物联网大数据应用场景,还提供缓存、数据订阅、流失计算等功能,最大程度降低研发和运维的复杂度。

    AIRIOT 实时流计算功能支持用户可以根据自身数据需求,通过自定义算法,实时地对平台数据进行统计、计算及映射,实现对数据的实时统计与计算。

    7、便捷、友好的二次开发

    AIRIOT 提供Go、Java、Node、Python等多语言 SDK 工具包、丰富的API及相关文档,用户可进行组件、接口服务、任务(计算)服务和驱动程序的快速开发、发布与运行。

    8、强大的系统集成能力

    AIRIOT 目前已集成了地理信息系统(Geographic Information System,GIS)、视频监控系统(海康威视、大华等)、安防系统、工单系统等数十种主流应用系统。

    【AIRIOT空中学院】公开课icon-default.png?t=LBL2https://c.airiot.cn/index

    配套书籍: 

    本书全面介绍了 AIRIOT 物联网平台开发框架的产品定位、特性及基础功能模块、二次开发能力、系统集成能力,以及大数据与人工智能应用和典型的项目案例,涉及大量工程应用内容。通过本书的学习,读者可方便地根据实际需求实现基于 AIRIOT 的物联网应用。 
    本书适合作为高等工科院校物联网工程、人工智能、自动化、测控技术与仪器、计算机等专业的物联网技术与应用相关课程的教材,也适合物联网平台应用开发技术人员使用。


     申请试用:

    申请试用 | AIRIOT 让物联网项目更简单AIRIOT品牌隶属于航天科技控股集团股份有限公司(以下简称“航天科技”),是航天科技旗下物联网平台开 发框架产品,由航天科技智慧物联事业部历时10年倾力打造,致力于低代码搭建IOT平台,持续将业务抽象 成通用的模块、组件、表单等,并经过项目应用实践沉淀和持续优化,形成了一款拥有完全自主知识产权、 图形化开发、全面快速感知、快速构建不同行业应用、开放的物联网平台。https://airiot.cn/try

    展开全文
  • 为什么要通过源代码构建Godot Engine? 如果只是在Godot编辑器做些Demo玩玩或者用官方提供的模板导出一个Windows或者安卓项目,完全没必要自己构建Godot。但是如果有下面的情况基本上躲不开这一步了: 需要修改...

    为什么要通过源代码构建Godot Engine?

    如果只是在Godot编辑器做些Demo玩玩或者用官方提供的模板导出一个Windows或者安卓项目,完全没必要自己构建Godot。但是如果有下面的情况基本上躲不开这一步了:

    • 需要修改Godot的源代码或者自定义模块
    • 需要接入一些第三方模块,比如Steam或者Spine等第三方模块

    构建所需工具

    工具获取地址说明
    Python 3.7Python官网
    SconsScons官网实际安装是通过Python自带的pip
    GitGit官网
    Visual Studio Community 2019Visual Studio官网
    Pywin32Pywin32 On Github实际安装是通过Python自带的pip
    Godot 源码Godot on Github本例使用的是3.2.2stable

    构建步骤

    1 安装Git

    2 安装Visual Studio Community 2019

    最重要的是安装C++组件
    在这里插入图片描述

    在这里插入图片描述

    3 安装Python3.7

    自定义安装,添加Python环境变量
    在这里插入图片描述

    确认一下是否安装了pip

    在这里插入图片描述
    选择一个安装位置

    在这里插入图片描述
    安装完毕

    在这里插入图片描述
    验证安装

    在这里插入图片描述

    4 安装Scons

    直接使用pip安装SCons,我安装的是当前最新4.0.1版

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple SCons

    注意:通过pip安装包的命令是pip install SCons,加上中间的-i https://pypi.tuna.tsinghua.edu.cn/simple原因是默认下载源速度太慢,所以我们指定pip到清华的镜像站去下载

    在这里插入图片描述

    5 安装Pywin32

    直接使用pip安装pywin32 228,我安装的是当前最新228版

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32

    在这里插入图片描述

    小结

    至此构建Godot Engine的工具就准备完毕了。

    下一篇《手把手教你从源代码构建Godot Engine(二)接入第三方模块Steam SDK,Spine Runtime等》

    展开全文
  • 使用Jenkins从gitlab上拉取...将Gitlab项目的SSH克隆地址配置到相应的Jenkins任务中,在构建时将代码拉取到Jenkins服务器的相应目录,为接下来的测试、部署等操作做好准备。 首先进入Jenkins 容器中 docker exec -it
  • 严正声明:本文系作者davidhopper原创,未经许可,不得转载。 CARLA是Intel主导开发的一个开源自动驾驶模拟器,基于虚幻引擎...注意:下载文中涉及的软件及源代码,需要设置代理及国内镜像服务器,可以分别参...
  • 程序员代码构建困局

    千次阅读 2020-05-12 09:29:03
    作者 | Roy Osherove译者 | 弯月,责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)以下为译文:我们需要根据代码的反馈来决定是...
  • 代码: 项目文件目录说明 img放游戏所使用的图片文件夹 frame放控制游戏场景相关的文件 instance放游戏窗口进程游戏循环工具类碰撞类的文件 render放游戏渲染引擎的文件夹 trigger放对一些消息进行映射的...
  • 主要内容:代码构建了含冷、热、电负荷的冷热电联供型综合能源系统优化调度模型,考虑了燃气轮机、电制冷机、锅炉以及风光机组等资源,并且考虑与上级电网的购售电交易,综合考虑了用户购电购热冷量的成本
  • 到此,在任何一台电脑上提交代码,都会触发Jenkins的自动build.   6 遇到的问题:插件安装失败 插件管理 ---- 高级 ---- 升级站点: https://updates.jenkins.io/update-center.json 替换为 ...
  • 构建的概念

    千次阅读 2021-02-27 19:36:52
    【Maven 简介】Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建...要了解构建的含义我们应该由浅入深的从以下三个层面来看:①纯 Java 代码大家都知道,我们 Java 是一门...
  • @RestController @GetMapping @PutMapping @PostMapping @DeleteMapping @ResponseBody ...
  • 本文转自微信号EAWorld。...大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发...每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。今天我们就来聊一聊微服务...
  • import datetime as date def create_genesis_block(): # Manually construct a block with index 0 and arbitrary previous hash return Block(0, date.datetime.now(), "Genesis Block", "0")
  • vb数控加工技术教学素材资源库的构建(源代码+论文).rar vb数控加工技术教学素材资源库的构建(源代码+论文).rar vb数控加工技术教学素材资源库的构建(源代码+论文).rar vb数控加工技术教学素材资源库的构建(源代码+...
  • java代码构建二叉树(二叉查找树)

    千次阅读 2021-06-16 16:02:13
    1. 前言 1.1 二叉树定义 二叉树是N个结点的有限集合,该集合或者为空集,或者由一个根节点跟两棵互不相交的、分别称为根节点的左子树或者右子树...2. java构建二叉树代码示例 2.1 二叉树的存储结构 以二叉链表存储为例
  • 构建haffman 树以及代码实现

    千次阅读 2022-04-19 15:34:55
    haffuman树的创建用到的值有两个 字符和字符权值 字符为1 2 3 4等等 字符权值为1或2在所有字符中出现的次数,类似于一种比重。字符在整体中出现的越多,说明字符被用到的频率越多。 就目前学习来看 ...
  • output = self.think(training_set_inputs) error = training_set_outputs - output adjustment = dot(training_set_inputs.T,error*self.__sigmoid_derivative(output))
  • 实战:向GitHub提交代码时触发Jenkins自动构建

    万次阅读 多人点赞 2018-01-21 12:14:56
    当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建; 原文地址:...
  • 此文件是图书《JavaScript构建Web和ArcGIS Server应用实战》源代码
  • 构建高质量的C#代码 完整扫描版

    热门讨论 2014-06-04 12:24:48
    1.2 代码构建的重要性 1.3 认识C#编程语言 1.3.1 C#简史 1.3.2 C#关键字及相关标识符 1.3.3 C#中的语句和表达式 1.4 构建C#开发环境 1.4.1 安装开发环境 1.4.2 C#程序的基本结构 1.4.3 如何创建窗体程序 1.5 高质量...
  • 前端程序员常用的9大构建工具

    千次阅读 2020-11-30 16:30:15
    构建工具是一个把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk)。构建包括编译、连接跟把代码打包成可用的或可执行的形式。 在小型项目中,开发者往往手动调用构建过程,这样在大型的项目中...
  • Jenkins 自动从拉取代码(gitee版本)

    千次阅读 2022-01-13 21:29:40
    Jenkins配置自动拉取,gitee自动拉取代码,gitte工作区打不开,点击构建,自动构建,添加Gitee链接配置,新建构建任务,任务全局配置,源码管理配置,触发器配置,webhook,构建后步骤配置,新建Gitee项目WebHook,...
  • 利用GitLab的Webhook功能,可以实现当代码PUSH到仓库时,自动发送消息给Jenkins触发指定任务,从而节省人工操作,实现自动化构建。 配置Jenkins 1、安装插件 Manage Jenkins -> 插件管理,安装GitLab Plugin和...
  • codeblock编译器构建失败问题

    千次阅读 2019-01-15 16:32:02
    在用codeblock进行编译的过程中出现了构建失败 只需点开设置->编译器将编译器重置默认即可
  • gitlab+Jenkins 实现代码push动作 触发Jenkins构建动作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,545,323
精华内容 618,129
关键字:

代码构建