C++构建二叉树

首先定义树的节点:

struct BinaryTreeNode 
{int                    m_nValue; BinaryTreeNode*        m_pLeft;  BinaryTreeNode*        m_pRight; 
};

定义构建节点和连接节点的方法:

BinaryTreeNode* CreateBinaryTreeNode(int value)
{BinaryTreeNode* pNode = new BinaryTreeNode();pNode->m_nValue = value;pNode->m_pLeft = nullptr;pNode->m_pRight = nullptr;return pNode;
}void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight)
{if(pParent != nullptr){pParent->m_pLeft = pLeft;pParent->m_pRight = pRight;}
}

 构建二叉树实例:

//              1
//            /   \
//           2     3
//       /       \
//      4         5
//     / \      /   \
//    6   7    8     9
void Test1()
{TreeNode* pNode1 = CreateTreeNode(1);TreeNode* pNode2 = CreateTreeNode(2);TreeNode* pNode3 = CreateTreeNode(3);TreeNode* pNode4 = CreateTreeNode(4);TreeNode* pNode5 = CreateTreeNode(5);TreeNode* pNode6 = CreateTreeNode(6);TreeNode* pNode7 = CreateTreeNode(7);TreeNode* pNode8 = CreateTreeNode(8);TreeNode* pNode9 = CreateTreeNode(9);ConnectTreeNodes(pNode1, pNode2);ConnectTreeNodes(pNode1, pNode3);ConnectTreeNodes(pNode2, pNode4);ConnectTreeNodes(pNode2, pNode5);ConnectTreeNodes(pNode4, pNode6);ConnectTreeNodes(pNode4, pNode7);ConnectTreeNodes(pNode5, pNode8);ConnectTreeNodes(pNode5, pNode9);
}

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

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

相关文章

obs噪音抑制调多少合适_TVS瞬态抑制二极管的特性及应用

TVS瞬态抑制二极管的特性及应用瞬态电压抑制器(Transient Voltage Suppressor)简称TVS,是一种二极管形式的高效能保护器件。当TVS二极管的两极受到反向瞬态高能量冲击时,它能以10-12秒量级的速度,将其两极间的高阻抗变…

python bootstrap 视频_想用Django+ Bootstrap写一个网站, 有哪些比较系统完整的书或者视频可以参考?...

前几天刚是社群的小伙伴写了个博客,Django写博客是很多学习Python人必经之路,今天我特别整理了一个建博客实录出来希望可以是Django学习之路的一个好启发,希望对大家有帮助。——————————1.django简介Django是一个开放源代码的Web应用…

量子计算机混战:新贵离子 vs 老派超导体

来源:云头条作者:Paul Smith-Goodson是知名研究分析公司Moor Insights & Strategy的量子计算常驻分析师。英特尔公司正迅速取得进展,将超导量子计算测试芯片的量子位增加到更多数量:从7个量子位增加到17个量子位,现…

C++万能头文件

<bits/stdc.h>包含了全部的C头文件

射命丸文 (Standard IO)

Description 在幻想乡&#xff0c;射命丸文是以偷拍闻名的鸦天狗。当然&#xff0c;文文的照相机可不止能够照相&#xff0c;还能够消除取景框里面所有的弹幕。假设现在文文面前有一块N行M列的弹幕群&#xff0c;每一个单位面积内有分值有num[i][j]的弹幕。相机的取景框可以将一…

c++ opencv 通过网络连接工业相机_摄像头和机器人视觉开发中的「相机标定」,你了解多少?...

目前我们团队在做一个项目&#xff0c;通过采集到的人脸图像测量人脸上两个瞳孔间的实际距离。注意是实际距离&#xff0c;不是两个瞳孔之间隔多少个像素点。找了很久资料&#xff0c;好像“相机标定”可以解决我的问题&#xff0c;看了不少资料来理解【相机标定】&#xff0c;…

怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中

【IT168 技术】Python和R语言是在数据工程师间最流行的编程语言&#xff0c;但是&#xff0c;它并不能适用于应用程序构建的所有部分。这也就是你为什么有时需要找到一种方法&#xff0c;将Python或R编写的机器学习模型部署到基于.NET等语言的环境中。本文将为大家展示如何使用…

刚刚上班才回来,今天和你说说hash数组

hash算法: 专门接受一个字符串&#xff0c;并计算出一个尽量不重复的编号。相同字符串&#xff0c;计算出的号一定相同&#xff01;不同字符串&#xff0c;计算的号几乎不相同。 添加元素时: 将下标名称交给hash算法&#xff0c;计算出一个唯一的序号&#xff0c;将值保存到数组…

C++ set insert的返回值

pair<iterator,bool> insert (const value_type& val); 返回布尔对以表示是否发生插入&#xff0c;如果重复插入一个元素会返回false。返回迭代器指向新插入元素。

【GNN】一份完全解读:是什么使神经网络变成图神经网络?

图1&#xff1a;来自(Bruna等人&#xff0c;ICLR&#xff0c;2014)的图&#xff0c;描绘了3D领域内的MNIST图像。虽然卷积网络很难对球面数据进行分类&#xff0c;但是图网络可以很自然地处理它。可以把它当做是一个处理工具&#xff0c;但在实际应用程序中会出现许多类似的任务…

TTU智能配电终端_分布式dtu智能配电终端10KV配网自动化专用介绍

SGE300FD 系列分布式配电自动化终端&#xff08;以下简称装置&#xff09;采用了先进的数字信号处理技术、高速工业网络通信技术、嵌入式工业芯片组和多任务实时操作系统&#xff0c;稳定性强、可靠性高、实时性好、环境性广、功能强大、维护简易、操作方便。与20KV及以下电压等…

python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!

近些年随着Python语言越来越流行&#xff0c;越来越多的人选择Python语言作为自己的职业方向。如何在心仪公司的面试中获得好成绩&#xff0c;并最终成功获得offer是每一个Python开发者都要慎重对待的事情&#xff0c;如下是笔者整理的Python程序员在面试中经常被问到的问题&am…

C++ priority_queue对链表节点建立小根堆

链表的节点为&#xff1a; struct ListNode {int val;ListNode *next;ListNode() : val(0), next(nullptr) {}ListNode(int x) : val(x), next(nullptr) {}ListNode(int x, ListNode *next) : val(x), next(next) {}}; 首先对链表节点建立一个结构体&#xff0c;结构体包含节…

python基础学习1-内置函数

#!/usr/bin/env python # -*- coding:utf-8 -*- 系统内置函数n abs(-1) #绝对值 print(n)#bytes()函数 s"离开" re bytes(s,encoding"utf-8") # bytes() 把字符串 转换成字节 print(re)res str(re,encoding"utf-8") #转换回字符串 print(res) …

数学与 AI「融通」 ,徐宗本院士进行超强“迁移学习”

来源&#xff1a; AI科技评论 编辑 | 唐里徐宗本院士在数学与 AI 之间进行了一次超强的“迁移学习”。9 月 21 日至 22 日&#xff0c;为期两天的 CCAI 2019 正在秋意浓浓的中国青岛胶州隆重举行。本次会议选址室外体育馆召开&#xff0c;为原本严肃的学术会议增添了几分活泼、…

mac怎么合并两个容器_Mac怎么合并文件夹?macz不容错过的苹果mac教程分享

关于合并文件夹&#xff0c;与Windows操作不同的是&#xff1a;Mac中很可能会出现文件丢失。 因为它对相同名称文件的实际操作是替换而不是另命名复制&#xff01;你的Mac电脑是否有重复文件想要合并&#xff1f;想了解Mac电脑合并文件夹而不丢失文件&#xff1f;那一定不要错过…

C++ 指向子类的指针转型为指向父类类型指针之后指向的对象地址不变

C 指向子类的指针转型为指向父类类型指针之后指向的对象地址不变 例子&#xff1a; class A{int a;int b; };class B:public A{int c; };int main(){B* pnew B();cout<<p<<endl;cout<<static_cast<A*>(p)<<endl;return 0; }

JMX学习笔记(一)-MBean

JMX学习笔记(一)-MBean 标签&#xff1a; jmxstringjavainterfaceexceptionclass2010-12-07 22:20 15360人阅读 评论(5) 收藏 举报分类&#xff1a;JMX&#xff08;11&#xff09; JMX 即 Java Management Extensions Java管理扩展MBean 即 managed beans …

关于大脑未必是破解智能和意识之谜的钥匙探讨

来源&#xff1a;刘锋的未来课堂“人脑能创造11维结构”是瑞士的研究机构蓝脑&#xff08;Blue Brain&#xff09;的一个研究结论&#xff0c;蓝脑&#xff08;Blue Brain&#xff09;研究所主要目标是建立一个由超级计算机驱动的人脑模型。这篇短文主要是由《崛起的超级智能》…

结构化分析和面向对象分析的区别 例子_管理游戏测评例子

在测评中心技术中&#xff0c;有一个非常有趣的场景的模拟测评&#xff0c;打造敏捷高绩效团队&#xff0c;提高执行力(包括人才测评)&#xff0c;旨在帮助学生培养自主性&#xff0c;了解自己&#xff0c;以独立的意见做出决策&#xff0c;采取果断的行动&#xff1b;培养赋权…