C++ class实现完全二叉树的顺序存储结构

代码如下:

#include <iostream>
using namespace std;
const int maxsize = 100;
typedef char  ElemType;class QbTree {public:void CreateBTree(int n);int vislchild(int i);int visrchild(int i);int visparent(int i);ElemType viselem(int i);void LevelOrder();private:ElemType elem[maxsize];int n;
};void QbTree::CreateBTree(int m) {for (int i = 1; i <= m; i++) {cin >> elem[i];}n = m;
}int QbTree::vislchild(int i) {if (i == 0 || i > n)return 0;int vis = 2 * i;if (vis > n) {cout << "lchild is not exist!!!" << endl;return 0;}return vis;
}int QbTree::visrchild(int i) {if (i == 0 || i > n)return 0;int vis = 2 * i + 1;if (vis > n) {cout << "rchild is not exist!!!" << endl;return 0;}return vis;
}int QbTree::visparent(int i) {if (i == 0 || i > n)return 0;int vis  = i / 2;if (vis == 0) {cout << "parent is not exist!!!" << endl;return 0;}return vis;
}ElemType QbTree::viselem(int i) {if (i == 0) {cout << "position is not correct!!!" << endl;return 0;}return elem[i];
}void QbTree::LevelOrder() {for (int i = 1; i <= n; i++)cout << elem[i] << " ";cout << endl;
}int main() {QbTree t;int n;cin >> n;getchar();t.CreateBTree(n);int ch, lch, rch, par;cin >> ch;lch = t.vislchild(ch);rch = t.visrchild(ch);par = t.visparent(ch);cout << lch << " " << rch << " " << par << endl;cout << t.viselem(lch) << endl;cout << t.viselem(rch) << endl;cout << t.viselem(par) << endl;t.LevelOrder();return 0;}

测试结果:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

研发协同平台持续集成Jenkins作业设计演进

源宝导读&#xff1a;Jenkins作为一个开源的持续集成工具&#xff0c;被大家广泛使用。本文将分享&#xff0c;Jenkins在明源云研发协同平台中的运用&#xff0c;以及在其作业设计方面的演进历程。一、作业设计1.0起初&#xff0c;为了尽快推出研发协同平台v1.0&#xff0c;我们…

一切都要从华为云 CloudIDE 酷似 VS Code 说起

前不久&#xff0c;有个关于华为云 CloudIDE 的问题在知乎、朋友圈、微博等圈子引起了广泛的讨论&#xff0c;甚至上了知乎热榜。那么&#xff0c;背后的真实情况到底是如何的&#xff1f;且听韩老师娓娓道来。华为云 CloudIDE 酷似 VS Code&#xff1f;首先要明确一点&#xf…

C++ class实现双亲表示法

#include <iostream> using namespace std; typedef char ElemType; const int MAXSIZE 100;class TreeNode {friend class Tree; private:ElemType data;int parent; };class Tree { private:TreeNode elem[MAXSIZE];int n;//树中当前的节点个数 }Tree;

单元测试:如何编写可测试的代码及其重要性

原文来自互联网&#xff0c;由长沙DotNET技术社区编译。如译文侵犯您的署名权或版权&#xff0c;请联系小编&#xff0c;小编将在24小时内删除。限于译者的能力有限&#xff0c;个别语句翻译略显生硬&#xff0c;还请见谅。作者&#xff1a;谢尔盖科洛迪&#xff08;SERGEY KOL…

C++ class实现孩子表示法

代码如下: #include <iostream> using namespace std; typedef char ElemType; const int MAXSIZE 100;class link {friend class Node; private:int child;link *next; };class Node {friend class Tree; private:ElemType data;link *first; };class Tree { private:…

@Autowired @Resource @Qualifier的区别

Autowired Resource Qualifier的区别 Autowired注释进行自动注入是&#xff0c;Spring容器中匹配的候选Bean数量必须只有一个&#xff0c;当找不到一个匹配的Bean时候&#xff0c;Spring容器抛出BeanCreationException一次&#xff0c;并且指出至少拥有一个匹配的Bean&#xf…

IdentityServer 部署踩坑记

IdentityServer 部署踩坑记Intro周末终于部署了 IdentityServer 以及 IdentityServerAdmin 项目&#xff0c;踩了几个坑&#xff0c;在此记录分享一下。部署架构项目是基于 IdentityServerAdmin 项目修改的&#xff0c;感谢作者的开源付出&#xff0c;有需要 IdentityServer 管…

.Net Core微服务架构技术栈的那些事

一、前言大家一直都在谈论微服务架构&#xff0c;园子里面也有很多关于微服务的文章&#xff0c;前几天也有一些园子的朋友问我微服务架构的一些技术&#xff0c;我这里就整理了微服务架构的技术栈路线图&#xff0c;这里就分享出来和大家一起探讨学习&#xff0c;同时让新手对…

SpringApplication.run做了哪些事情

URL https://mp.weixin.qq.com/s/uP4seo__qYMJMzmbWyUUnA?tdsourcetags_pctim_aiomsg SpringApplication.run 总共做了两件事情&#xff0c;如下源码 穿件SpringApplication对象利用创建好的对象调用run方法 // SpringApplication.run(Application.class, args);进入 ---…

C++ class实现Huffman树(完整代码)

代码如下: #include <iostream> #include <string> using namespace std; const unsigned int n 8;//字符数NUM&#xff0c;这里的字符数为8 const unsigned int m 2 * n - 1;//结点总数 const float MAX 1e8;class HTNode {friend class HuffmanTree; private…

二叉树的遍历(堆栈)

二叉树的遍历&#xff08;堆栈&#xff09; 如何理解用堆栈方式代替递归去遍历二叉树&#xff0c;关键点在于了解每个结点输出时的顺序&#xff0c;以及理解前序中序后序是如何遍历的&#xff0c;这点很重要&#xff0c;可以自己画一个树图&#xff0c;熟练写出遍历的结果 以…

ASP.NET Core分布式项目实战(第三方ClientCredential模式调用)--学习笔记

任务10&#xff1a;第三方ClientCredential模式调用创建一个控制台程序dotnet new console --name ThirdPartyDemo添加 Nuget 包&#xff1a;IdentityModel添加之后还原dotnet restoreClientusing System; using System.Net.Http; using System.Threading.Tasks; using Identit…

Hystrix能解决的问题

Hystrix 问题产生 雪崩效应&#xff1a; 一种因为服务提供者的不可用导致服务调用者不可用&#xff0c;并将不可用情况逐渐放大的过程 形成过程&#xff1a; 服务提供者不可用&#xff1a; 硬件故障&#xff0c;硬件损坏&#xff0c;服务器宕机&#xff0c;网络硬件故障&…

C++ class实现邻接矩阵存储的图(完整代码)

代码如下: #include <iostream> #include <queue> using namespace std; typedef int VertexType; typedef int EdgeType; const int MaxVertexNum 30;class MGraph { public:MGraph(){CreatGraph();};void CreatGraph();void Visit(int v);void BFS(int v);void…

二叉搜索树(创建,插入,删除):基础篇,适合新手观看。

1.1 二叉搜索树的插入 二叉搜索树的概念相信大家都很清楚&#xff0c;无非就是左小右大 创建二叉搜索树&#xff0c;其实就是多次调用二叉搜索树的插入方法&#xff0c;所以首先我们来讲讲如何插入节点到二叉搜索树里&#xff0c;假设一颗二叉搜索树如下&#xff0c;现在要插入…

.NET 的过去、现在和未来

作为一名使用了十多年.NET 开发平台的开发者来说&#xff0c;多年来笔者鲜少在各类博客媒体推广布道 .NET平台&#xff0c;但也默默地关注着 .NET 平台的发展变化&#xff0c;为每一次新技术的出现欢呼&#xff0c;为近年来 .NET 的沉默感到惋惜&#xff0c;也为开放开源的 .NE…

Redis数据结构以及对应存储策略

redis数据结构&#xff1a; String 可以是字符串也可以是数字&#xff0c;以及浮点数List&#xff0c;一个链表&#xff0c;链表上每一个节点都包含一个字符串set 包含字符串的无序手机其&#xff0c;特点是每一个字符都是唯一的hash&#xff0c;包含键值对的无序散列&#xf…

AVL树(平衡二叉树)讲解,入门篇,适合新手观看

1.1 概念 平衡二叉树就是为了让二叉搜索树的平均查找长度更短&#xff0c;时间复杂度更靠近logN,如果一个二叉搜索树不平衡了就会出现图1情况&#xff0c;完全变成一个数组&#xff0c;时间复杂度也变为了O(N)。 平衡因子&#xff1a;平衡因子就是针对于树中某一结点&#xff…

读源码,对开发者重要吗?

.NET 5.0 Peview 2发布4月2日&#xff0c;微软发布了.NET 5.0 Preview 2&#xff0c;带来功能和性能方面的改进。这一版本包括.NET 5.0.0 Preview 2与.NET SDK 5.0.100 Preview 2。.NET 5是.NET Framework和.NET Core的未来&#xff0c;最终将成为一个统一平台&#xff0c;.NET…

Redis和DB数据一致性解决方案

问题出现原因 并发时候无法保证读写的先后顺序&#xff0c;如果删掉了缓存还没来得及写库&#xff0c;另外一个县城就多来读取&#xff0c;发现缓存为空就去读取数据库并且写入缓存&#xff0c;这时候缓存中就是脏数据如果先写库&#xff0c;在删除缓存前&#xff0c;写库的线…