代码如下:

#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;}

测试结果:

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

  1. 已知一棵完全二叉树存于顺序表sa中,sa.elem[1..sa.length]含结点值,试编写算法由此顺序存储结构建立该二叉树的二叉链表。

    已知一棵完全二叉树存于顺序表sa中,sa.elem[1-sa.length]含结点值,试编写算法由此顺序存储结构建立该二叉树的二叉链表. 分析:由二叉树的性质可知,一个下标为i的节点若有左子树,则其左 ...

  2. 理论基础 —— 二叉树 —— 顺序存储结构

    [顺序存储结构] 二叉树的顺序存储结构是用一维数组存储二叉树中的结点,并用结点的存储位置表示结点间的逻辑关系(父子关系) 由于二叉树本身不具有顺序关系,因此二叉树的顺序存储结构要解决的关键问题是如何利 ...

  3. 二叉树(C语言实现)——顺序存储结构

    /*二叉树顺序存储结构一般仅适合于存储完全二叉树*/ #include<stdio.h> #include<stdlib.h> #include<math.h> # ...

  4. 二叉树的顺序存储结构

    一.顺序存储结构 二叉树的顺序存储结构是指用一组地址连续的存储单元依次自上而下.自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为 i 的结点元素存储在一维数组下标为 i-1 的分量中. 依据 ...

  5. (数据结构)二叉树的顺序存储结构

    二叉树的存储结构 二叉树的存储结构有两种,分别为顺序存储和链式存储,此篇文章介绍顺序存储 二叉树的顺序存储 二叉树的顺序存储,指的是使用顺序表(数组)存储二叉树 重点!!! 顺序存储只适用于完全二叉树 ...

  6. 数据结构和算法:(3)3.1线性表的顺序存储结构

    -----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...

  7. 图的顺序存储结构及C语言实现

    转自:http://data.biancheng.net/view/202.html 图 图存储结构可细分两种表现类型,分别为无向图和有向图. 弧头和弧尾 有向图中,无箭头一端的顶点通常被称为&quo ...

  8. C++编程练习(5)----“实现简单的循环队列的顺序存储结构“

    队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出(First In First Out)的线性表,简称FIFO.允许插入的一端称为队尾,允许删除的一端 ...

  9. 线性表的顺序存储——顺序存储结构的抽象实现

    1,本文完成顺序存储结构线性表的抽象实现: 1,SeqList 还是一个抽象类,这里仅实现线性表的关键操作,但是还是不能生成具体对象: 2,关键操作虽然指定,但是顺序存储的指定没有在 SeqList ...

最新文章

  1. [软件推荐]电子日记本EDiary,记下您 的每一天
  2. 比特币的锁定脚本与解锁脚本
  3. Oracle-逻辑体系结构
  4. nagios监控之(监控配置)
  5. 角色互换:普通程序员与有理想的程序员
  6. 1.通俗解释分布式系统
  7. OpenShift 4 - 配置OpenShift集群日志环境EFK
  8. 独家 | 腾讯无人车首次曝光,还把车子开上了四环
  9. 祝每位读者在新的一年里虎虎有生气·事事皆如意!
  10. 第一个简单APP设计图
  11. IS-IS详解(十三)——IS-IS 路由开销类型
  12. 【图像融合】基于matlab curvelet变换图像融合(评价指标)【含Matlab源码 781期】
  13. Cortex-M3 (NXP LPC1788)之IIC控制器
  14. 人一生要做的一百件事
  15. 电商时代得流量者得天下,思域流量要怎么做
  16. 产品故事:一家服装厂的创新之路
  17. 微信企业付款到银行卡(微信转账)(Java完整版)
  18. 玩转 Jasper Report(1) Jaspersoft Studio 安装使用教程
  19. RedHat Linux 9.0 安装教程(全程图解)
  20. 2022最新Let正版短信测压系统源码+全开源版

热门文章

  1. Android之UI线程与子线程交互设计的5种方法
  2. 最大尺寸分辨率_未来就在眼前——视涯科技推出最高分辨率硅基OLED显示屏幕...
  3. java 视图对象转换_java-如何从onItemSelected()方法返回的视图对象...
  4. mysql输出代码_mysql常用代码
  5. ​“北斗女神”徐颖,32岁成为中科院最年轻的博导!
  6. 颜宁问4对科研夫妻:男科学家怎样平衡事业家庭?
  7. 你为什么不爱发朋友圈了?
  8. 预售┃没有标题,配得上这款“俄罗斯方块”
  9. 1个月教你学会用Python实现机器学习
  10. linux daemon守护线程,线程8--守护线程Daemon