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

网址导航网站怎样做网站建设经费预算表

网址导航网站怎样做,网站建设经费预算表,wordpress首页不加载图片不显示,wordpress页面如何调用文章分类目录 前言 1.数组和结构体相关的一些知识 1.数组 2.结构体数组 2.二叉树的顺序存储表示法和实现 1.定义 2.初始化 3.先序遍历二叉树 4.中序遍历二叉树 5.后序遍历二叉树 6.完整代码 前言 二叉树的非递归的表示和实现。 1.数组和结构体相关的一些知识 1.数组 在C语… 目录 前言 1.数组和结构体相关的一些知识 1.数组 2.结构体数组 2.二叉树的顺序存储表示法和实现 1.定义 2.初始化 3.先序遍历二叉树 4.中序遍历二叉树 5.后序遍历二叉树 6.完整代码 前言 二叉树的非递归的表示和实现。 1.数组和结构体相关的一些知识 1.数组 在C语言中可以将数组作为参数传递给函数。当数组作为参数传递时实际上传递给函数的是数组的地址而不是数组的副本。这意味着在函数内部对数组进行的修改会影响到原始数组。 例如在下面的代码中我们把数组名作为参数传递给modifyArray函数在函数中修改数组的值main函数打印原来的数组会发现原来的数组也被修改。 #include stdio.h #include stdlib.hvoid modifyArray(int *s,int size){for (int i 0; i size; i) {s[i] s[i] * 10;}printf(\n); }int main(int argc, const char *argv[]) {int arr[5] {1,2,3,4,5};int length sizeof(arr) / sizeof(arr[0]);printf(修改之前的数组:\n);for (int i 0; i length;i) {printf(%d\t,arr[i]);}modifyArray(arr,length);printf(\n修改之前的数组:\n);for (int i 0; i length;i) {printf(%d\t,arr[i]);}printf(\n);return 0; }当然上述的函数我们还可以写成数组的形式。 void modifyArray(int s[],int size){for (int i 0; i size; i) {s[i] s[i] * 10;}printf(\n); } 2.结构体数组 在上述的代码中我们使用数组操作基本数据类型非常的方便。当时当我们需要自定义数据类型的时候上述的代码就不满足我们的需求了。例如我们需要表示学生数组的时候因为每个学生都有自己的属性姓名年龄等等这个时候我们就需要使用结构体数组。 在数据结构中我们有时候需要使用数组表示一些数据类型因此有时候我们需要把数组声明为全局函数。代码实例如下 #include stdio.h #include stdlib.h// 学生结构体 typedef struct {char name[50]; // 姓名int age; // 年龄 } Student;int main() {// 创建一个包含3个学生对象的数组并初始化Student students[3] {{张三, 20},{李四, 21},{王五, 22}};// 输出学生信息printf(学生信息如下\n);for (int i 0; i 3; i) {printf(学生姓名%s\n, students[i].name);printf(学生年龄%d\n, students[i].age);}return 0; } 2.二叉树的顺序存储表示法和实现 图1.完全二叉树 图2.普通二叉树 我们使用一组连续的存储空间表示树的结构。按照从上到下、从左到右的顺序存储完全二叉树的的节点对于一般二叉树上的点我们使用0表示不存在该节点。 对于图1来说内存中的存储结构如下图3所示。 图3.完全二叉树的存储结构 如果不是二叉树假如我们使用0表示结点不存在图2所示的存储结构如图4所示。 图4.普通二叉树 下面我们看看如果使用代码来实现。 1.定义 我们使用数组实现二叉树的顺序存储 #define MAX_TREE_SIZE 100typedef char TElemType; typedef int Status;typedef TElemType SqBiTree[MAX_TREE_SIZE]; 2.初始化 初始化时候将数组中的元素全部设为\0 // 初始化二叉树 Status initSqBiTree(SqBiTree tree) {for (int i 0; i MAX_TREE_SIZE; i) {tree[i] \0;}// 将二叉树所有元素初始化为空return 1; // 初始化成功 } 3.先序遍历二叉树 遍历二叉树之前我们观察下根节点、左子树节点、右子树节点的规律。 根节点的下标为a[0].左子树上的节点的下标依次为1,3...2*i1右子树上的节点的下标依次为2,4...2*i2 // 前序遍历二叉树 void preOrderTraverse(SqBiTree tree, int node_index) {if (node_index MAX_TREE_SIZE tree[node_index] ! \0) {// 访问根节点printf(%c , tree[node_index]);// 递归遍历左子树preOrderTraverse(tree, 2 * node_index 1);// 递归遍历右子树preOrderTraverse(tree, 2 * node_index 2);} } 4.中序遍历二叉树 // 中序遍历二叉树 void inOrderTraverse(SqBiTree tree, int node_index) {if (node_index MAX_TREE_SIZE tree[node_index] ! \0) {// 递归遍历左子树inOrderTraverse(tree, 2 * node_index 1);// 访问根节点printf(%c , tree[node_index]);// 递归遍历右子树inOrderTraverse(tree, 2 * node_index 2);} } 5.后序遍历二叉树 // 后序遍历二叉树 void postOrderTraverse(SqBiTree tree, int node_index) {if (node_index MAX_TREE_SIZE tree[node_index] ! \0) {// 递归遍历左子树postOrderTraverse(tree, 2 * node_index 1);// 递归遍历右子树postOrderTraverse(tree, 2 * node_index 2);// 访问根节点printf(%c , tree[node_index]);} } 6.完整代码 #include stdio.h#define MAX_TREE_SIZE 100typedef char TElemType; typedef int Status;typedef TElemType SqBiTree[MAX_TREE_SIZE];// 初始化二叉树 Status initSqBiTree(SqBiTree tree) {for (int i 0; i MAX_TREE_SIZE; i) {tree[i] \0;}// 将二叉树所有元素初始化为空return 1; // 初始化成功 }// 前序遍历二叉树 void preOrderTraverse(SqBiTree tree, int node_index) {if (node_index MAX_TREE_SIZE tree[node_index] ! \0) {// 访问根节点printf(%c , tree[node_index]);// 递归遍历左子树preOrderTraverse(tree, 2 * node_index 1);// 递归遍历右子树preOrderTraverse(tree, 2 * node_index 2);} }// 中序遍历二叉树 void inOrderTraverse(SqBiTree tree, int node_index) {if (node_index MAX_TREE_SIZE tree[node_index] ! \0) {// 递归遍历左子树inOrderTraverse(tree, 2 * node_index 1);// 访问根节点printf(%c , tree[node_index]);// 递归遍历右子树inOrderTraverse(tree, 2 * node_index 2);} }// 后序遍历二叉树 void postOrderTraverse(SqBiTree tree, int node_index) {if (node_index MAX_TREE_SIZE tree[node_index] ! \0) {// 递归遍历左子树postOrderTraverse(tree, 2 * node_index 1);// 递归遍历右子树postOrderTraverse(tree, 2 * node_index 2);// 访问根节点printf(%c , tree[node_index]);} }int main(int argc, const char *argv[]) {SqBiTree tree;// 初始化二叉树initSqBiTree(tree);// 构造一个简单的二叉树根节点为A左子树为B右子树为Ctree[0] A;tree[1] B;tree[2] C;tree[3] D;tree[4] E;tree[5] \0;tree[6] \0;// 输出初始化后的二叉树printf(前序遍历结果为);preOrderTraverse(tree, 0);printf(\n);printf(中序遍历结果为);inOrderTraverse(tree, 0);printf(\n);printf(后序遍历结果为);postOrderTraverse(tree, 0);printf(\n);return 0; }// 后序遍历二叉树 void postOrderTraverse(SqBiTree tree, int node_index) {if (node_index MAX_TREE_SIZE tree[node_index] ! \0) {// 递归遍历左子树postOrderTraverse(tree, 2 * node_index 1);// 递归遍历右子树postOrderTraverse(tree, 2 * node_index 2);// 访问根节点printf(%c , tree[node_index]);} }int main(int argc, const char *argv[]) {SqBiTree tree;// 初始化二叉树initSqBiTree(tree);// 构造一个简单的二叉树根节点为A左子树为B右子树为Ctree[0] A;tree[1] B;tree[2] C;tree[3] D;tree[4] E;tree[5] \0;tree[6] \0;// 输出初始化后的二叉树printf(前序遍历结果为);preOrderTraverse(tree, 0);printf(\n);printf(中序遍历结果为);inOrderTraverse(tree, 0);printf(\n);printf(后序遍历结果为);postOrderTraverse(tree, 0);printf(\n);return 0; }在main函数中我们构建了一个图2所示的二叉树控制台打印信息如下
http://www.hkea.cn/news/14460444/

相关文章:

  • 陕西四通建设工程有限责任公司网站大连开发区邮编
  • 商业网站建设目标joomla网站模板
  • 时彩网站开发中职网络营销专业
  • 个人网站推荐免费洛阳制作网站公司
  • 哪个网站做恒生指数最安全mdx wordpress
  • 做百度推广设置网站统计企业网站建设的类型有哪些
  • 交通设施东莞网站建设wordpress迁hexo
  • 天津市城乡和住房建设厅网站猎头公司怎么找
  • 上海商城网站建设公司网站内链工作做足
  • 网站购买空间厦门专业网站设计公
  • 外包公司做的网站怎么改密码域名申请
  • 做地铁系统集成的公司网站企业网站的建设与应用开题报告
  • 许昌建设网站哪家好wordpress速度没织梦快
  • wdcp 修改默认网站中国建筑网官网首页
  • 福州建设企业网站成都网站建设公司司
  • 商机网网站源码什么网站可以做卡首屏淘口令
  • 商城网站建设企业郑州制作个人网站
  • 哈市哪里网站做的好手机膜+东莞网站建设
  • html5快速建站广东app开发公司
  • 苏州专业做网站的公司有哪些建设工程质量协会网站
  • 加氢站个公司好青岛ui设计公司
  • seo网站关键词排名优化公司个人主页源码
  • wordpress不显示网站标题wordpress栏目页
  • 福田做商城网站建设找哪家公司比较安全棋牌网站哪里做
  • 淄博城乡建设局网站手机商城图片
  • 东莞seo建站优化费用建筑直聘网
  • 合肥网站建设网站推广津学院金华手机建站模板
  • 网站可能存在什么问题吗直播app开发要多少钱
  • 班级网站怎么做ppt公司起名字大全免费查询
  • 上海徐家汇网站建设网络工程师需要什么证书