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

网站开发语音占比工程建设教育网站

网站开发语音占比,工程建设教育网站,q群排名优化软件,龙江建网站本篇博客给大家带来的是用C语言来实现堆链式结构和二叉树的实现! 🐟🐟文章专栏:数据结构 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享! 今日思想&#xff…

本篇博客给大家带来的是用C++语言来实现堆链式结构和二叉树的实现!

🐟🐟文章专栏:数据结构

🚀🚀若有问题评论区下讨论,我会及时回答

❤❤欢迎大家点赞、收藏、分享!

今日思想:你现在的懒惰将来你会买单的!

 上篇文章我们实现了二叉树的堆的顺序结构的实现具体内容请看这两篇文章:【C++】树和二叉树的实现(上)-CSDN博客

【C++】树和二叉树的实现(下)-CSDN博客 

接下来我们实现二叉树堆的链式结构 !

一、二叉树堆的链式结构的定义

        顺序结构实现堆的底层是数组,那么链式结构的底层是链表。我们先定义链表的结构体。

代码实例:

//Tree.h
//定义链式结构二叉树
typedef char BTDataType;
typedef struct BinaryTreeNode
{BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right;
}BTNode;

二、二叉树堆的链式结构的实现方法

        二叉树堆的链式结构的实现方法有: 前序遍历、中序遍历、后序遍历、二叉树结点个数、二叉树叶子结点个数、二叉树第k层结点个数、二叉树查找值为x的结点、二叉树的销毁、层序遍历、判断二叉树是否为完成二叉树。

注意:这些方法的实现大部分都是递归的思想,即使不知道递归也没事下面我会细说。

1、前序遍历

        前序遍历的规则:先遍历根,再遍历左子树、最后遍历右子树。

遍历顺序:A->B->D->NULL->NULL->NULL->C->E->NULL->NULL->F->N->ULL->NULL     

注:大家可以根据遍历顺序来理解前序遍历的规则。

代码实例:

//Tree.h
//前序遍历
void preOrder(BTNode* root);
//Tree.c
//前序遍历-根左右
void preOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}printf("%c ", root->data);preOrder(root->left);preOrder(root->right);
}

 短短的几行代码就完成了前序遍历,让我们看看它是怎么实现的,如图:

          其他的代码实现跟上图的注释一样就不多写了,包括后面实现的中序遍历、后序遍历等。

注:这张图不太清楚大家可以下载,然后在电脑自带的画图上放大就行。

 2、中序遍历

        中序遍历的规则:先遍历左子树,再遍历根结点、最后是右子树。

遍历顺序:NULL->D->NULL->B->NULL->A->NULL->E->NULL->C->NULL->F->NULL 

代码实例:

//Tree.h
//中序遍历
void InOrder(BTNode* root);
//Tree.c
//中序遍历——左根右
void InOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}postOrder(root->left);printf("%c ", root->data);postOrder(root->right);
}

3、后序遍历

        后序遍历的规则:先遍历左子树,再遍历右子树、最后遍历根结点。

遍历顺序:NULL->NULL->D->NULL->B->NULL->NULL->E->NULL->NULL->F->C->A 

代码实例:

//Tree.h
//后序遍历
void postOrder(BTNode* root);
//Tree.c
//后序遍历——左右根
void postOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}postOrder(root->left);postOrder(root->right);printf("%c ", root->data);
}

4、二叉树结点个数

        二叉树结点个数=根结点+左子树的结点个数+右子树结点个数

注:只有一个根结点。

代码实例:

//Tree.h
//二叉树结点个数
int BinaryTreesize(BTNode* root);
//Tree.c
//二叉树结点个数
int BinaryTreesize(BTNode* root)
{if (root == NULL){return 0;}return 1 + BinaryTreesize(root->left) + BinaryTreesize(root->right);
}

 由于时间的原因后面的实现方法放到下篇文章!!

完!!

http://www.dtcms.com/wzjs/735402.html

相关文章:

  • 国家建设执业注册中心网站设计制作活动
  • 罗湖区做网站的公司全网搜索指数
  • wordpress优化网站西宁网站设计企业
  • 虚拟主机网站建设步骤上海环球金融中心门票
  • 网站建设公司咋样网站建设及运维合同
  • 品牌推广策略宿迁seo
  • 做网站设计是什么专业wordpress添加new
  • 谷歌建站多少钱设置什么引擎营销是用户主导的网络营销方式
  • 外贸营销型网站大连网站哪家做的好?
  • 做服务器的网站都有哪些100 款软件app免费下载大全
  • 诸暨哪些公司可以制作网站做网站建设公司赚钱吗
  • html5网站开发技术天津市建设网站
  • 建设公共资源交易中心网站烟台房地产网站建设
  • vps网站管理助手下载网站开发三端指哪三端
  • 济宁市做网站的公司北京百度关键词优化
  • 辉县市工程建设网站建设可信赖的手机网站设计
  • 重庆 网站开发全国城建中心官网入口
  • 徐州网站建设技术外包网站优化的代码
  • 珠海新盈科技网站建设湖北网站建设
  • seo排名优化方式方法seo英文怎么读
  • 福州网站微信公众号西宁网站系统建设
  • 镇江网站建设dmooo做企业网站合同
  • 公司要做好网站怎样做asp网站源码免费版
  • 云主机搭建多个网站网站规划与设计方向
  • 做企业网站需要招标公告上面的技术参数写什么wordpress 邮箱登录
  • 制作网站的视频教程建站一条龙的服务流程是怎么样的
  • 一般网站栏目结构广州网站建设推荐q479185700顶上
  • 怎么进行网站建设株洲seo优化报价
  • 如何做古诗词网站温州网站建设(首选国鼎网络)
  • 车都建设投资集团网站电商运营培训正规平台