当前位置: 首页 > news >正文

网站建设演讲稿黄山网站开发

网站建设演讲稿,黄山网站开发,重庆知名网站建设公司,钟楼网站建设#include<iostream> #include<math.h> using namespace std;#define MaxSize 100 struct TreeNode {int value;bool isEmpty;//判断该节点是否为空 }t[MaxSize];/** *定义一个长度位MaxSize的数组&#xff0c;按照从上到下&#xff0c; *从左到右的方式依次存储完全…
#include<iostream>
#include<math.h>
using namespace std;#define MaxSize 100
struct TreeNode {int value;bool isEmpty;//判断该节点是否为空
}t[MaxSize];/**
*定义一个长度位MaxSize的数组,按照从上到下,
*从左到右的方式依次存储完全二叉树的各个节点
*/
//TreeNode t[MaxSize];//初始化二叉树:注意从数组下标来进行存储
void InitTreeNode(TreeNode * t) {for (int i = 0; i < MaxSize; i++) {t[i].isEmpty = true;}
}           /*
i的左孩子——2i
i的右孩子——2i+1
i的父节点——【i/2】
i所在的层次——log2的(n+1)向上取整  或者  log2的n(向下取整)
*///寻找i的左节点的数据
bool FindLeft(TreeNode* t, int size, int &value) {if (size * 2 > 100 - 1||t[size*2].isEmpty==true) {return false;}value = t[size*2].value;return true;
}//寻找i的右节点的数据
bool FindRight(TreeNode* t, int size, int& value) {if (size * 2 +1> 100 - 1 || t[size*2+1].isEmpty == true) {return false;}value = t[size*2+1].value;return true;
}//寻找i的父节点的数据
bool FindFather(TreeNode* t, int size, int& value) {if ( t[size /2].isEmpty == true) {return false;}value = t[size/2].value;return true;
}//寻找i的层次
double FindHigh(TreeNode* t, int size) {//i所在的层次——log2的(n+1)向上取整double a = 2;double b = size + 1;double result = log(b) / log(a);//进行向上取整result = ceil(result);return result;
}int main() {return 0;
}

一、整体功能概述

这段 C++ 代码主要实现了与完全二叉树相关的一些基本操作,包括二叉树节点结构体的定义、二叉树的初始化以及对完全二叉树中节点的左孩子、右孩子、父节点数据的查找,还有对节点所在层次的计算等功能。

二、代码结构分析

1. 头文件和命名空间
#include<iostream>
#include<math.h>
using namespace std;
  • 包含了 <iostream> 头文件用于输入输出操作,<math.h> 头文件用于数学运算(如对数运算用于计算节点层次)。使用了 using namespace std;,这种方式虽然方便但在大型项目中可能会导致命名冲突,更推荐按需使用 std:: 限定符。
2. 二叉树节点结构体定义
#define MaxSize 100
struct TreeNode {int value;bool isEmpty;
}t[MaxSize];
  • 通过宏定义 MaxSize 确定了二叉树节点数组的最大容量为 100。定义了 TreeNode 结构体,包含一个整型的 value 字段用于存储节点的值,以及一个布尔型的 isEmpty 字段用于判断该节点是否为空。同时声明了一个名为 t 的 TreeNode 类型数组,用于存储完全二叉树的各个节点。
3. 二叉树初始化函数
//初始化二叉树:注意从数组下标来进行存储
void InitTreeNode(TreeNode * t) {for (int i = 0; i < MaxSize; i++) {t[i].isEmpty = true;}
}
  • 该函数接受一个指向 TreeNode 数组的指针 t,通过循环将数组中每个节点的 isEmpty 字段设置为 true,表示初始时所有节点都为空,为后续插入节点等操作做好准备。
4. 查找节点相关函数
查找左节点数据函数
//寻找i的左节点的数据
bool FindLeft(TreeNode* t, int size, int &value) {if (size * 2 > 100 - 1 || t[size * 2].isEmpty == true) {return false;}value = t[size * 2].value;return true;
}
  • 此函数用于查找完全二叉树中指定节点(由 size 索引确定)的左孩子节点的数据。首先判断左孩子节点的索引是否超出范围(通过 size * 2 > 100 - 1 判断)或者左孩子节点是否为空(通过 t[size * 2].isEmpty == true 判断),如果满足其中一个条件则返回 false。否则,将左孩子节点的值赋给传入的引用参数 value,并返回 true
查找右节点数据函数
//寻找i的右节点的数据
bool FindRight(TreeNode* t, int size, int &value) {if (size * 2 + 1 > 100 - 1 || t[size * 2 + 1].isEmpty == true) {return false;}value = t[size * 2 + 1].value;return true;
}
  • 与查找左节点数据函数类似,用于查找指定节点的右孩子节点的数据。先进行索引范围和节点是否为空的判断,满足条件则返回 false,否则赋值并返回 true
查找父节点数据函数
//寻找i的父节点的数据
bool FindFather(TreeNode* t, intsize, int &value) {if (t[size / 2].isEmpty == true) {return false;}value = t[size / 2].value;return true;
}
  • 该函数用于查找指定节点的父节点的数据。判断父节点是否为空(通过 t[size / 2].isEmpty == true 判断),为空则返回 false,否则赋值并返回 true
5. 计算节点层次函数
//寻找i的层次
double FindHigh(TreeNode* t, int size) {//i所在的层次——log2的(n+1)向上取整double a = 2;double b = size + 1;double result = log(b) / log(a);//进行向上取整result = ceil(result);return result;
}
  • 此函数用于计算完全二叉树中指定节点(由 size 索引确定)所在的层次。根据公式先通过对数运算计算出一个初步结果(以 2 为底的对数,通过换底公式 log(b) / log(a) 实现),然后使用 ceil() 函数对结果进行向上取整,最后返回该节点所在的层次值。
http://www.yayakq.cn/news/948973/

相关文章:

  • 技术支持海安网站建设受欢迎的句容网站建设
  • 北京 好的网站制作龙岗建设网站公司
  • 网站建设公司加盟个人博客网页制作图片
  • 上海创新网站建设网站关键词排名全掉了
  • 魔兽7.2国内做插件网站网站建设犭金手指a15
  • 温州网站建设专家pc网站建设怎么样
  • 搜索引擎优化seo网站曹鹏的wordpress教程
  • 网站建设四川网站续费服务内容
  • 湖南做网站的公司注册平台
  • 做的网站打开显示无标题池州最好的网站建设
  • 论坛网站建设价格网络营销策划包括哪些内容
  • 陵水网站建设哪家好郑州优化网站关键词
  • 福州专业网站设计公司福州外文网站建设
  • 注册网站多少钱星锐网站建设
  • 安阳网站建设哪家便宜青岛房产网官网
  • 请人做网站需要问哪些问题中国建设银行官方网站纪念币预约
  • 如何做pc网站适配网站开发包含的项目和分工
  • 网架公司安全员需要什么证书网站优化检测工具
  • 金融网站 源码怎样做服装网站
  • 免费个人网站模版下载四川建设学网官方网站登录
  • wordpress 设置固定链接seo短视频网页入口营销策略
  • 做网站多h5应用
  • 建设厅网站业务系统板块查成绩中国建设网官方网站平台
  • 企业网站怎么管理系统型网站建设
  • 成都建设银行保安招聘网站阜阳做网站
  • 国内优秀的响应式网站网站二级页面设计
  • 亿唐网不做网站做品牌怎么可以创建网站
  • 点餐网站模板深圳关键词优化平台
  • 优化官方网站设计中国建设银行大学助学贷款网站
  • 网站搜索页面怎么做四川省建设厅