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

乔拓云建站平台不是免费的广告位网站模板

乔拓云建站平台不是免费的,广告位网站模板,电子商务网站经营性icp,app推广是什么意思接着上一节。我们接着学习二叉树#xff0c;学习使用链表建立二叉树时#xff0c;最好把每个子程序的递归展开图#xff0c;都画一下 前言 在学习二叉树的基本结构前#xff0c;需先要创建一颗二叉树#xff0c;然后才能学习其相关的基本操作#xff0c;由于现在大家二…接着上一节。我们接着学习二叉树学习使用链表建立二叉树时最好把每个子程序的递归展开图都画一下 前言 在学习二叉树的基本结构前需先要创建一颗二叉树然后才能学习其相关的基本操作由于现在大家二叉树的结构了解的不够深入为了减低学习成本这里手动快速创建一颗简单的而二叉树快速进入二叉树操作学习等二叉树结了解的差不多时我们反过头来研究二叉树真正的创建方式 4. 二叉树链式结构的简单实现 4.1创建二叉树 -1.快速手搓二叉树 二叉树图示 代码实现 typedef int BTDataType;typedef struct BinaryTreenode {struct BinaryTreenode* left;struct BinaryTreenode* right; BTDataType data; }BT;BT* BuyNode(BTDataType x) {BT* newnode (BT*)malloc(sizeof(BT));if(NULL newnode){perror(BuyNode::malloc);return NULL;}newnode-data x;newnode-left NULL;newnode-right NULL;return newnode; }int main() {BT* node1 BuyNode(1);BT* node2 BuyNode(2);BT* node3 BuyNode(3);BT* node4 BuyNode(4);BT* node5 BuyNode(5);BT* node6 BuyNode(6);BT* node7 BuyNode(7);node1-left node2;node1-right node4;node2-left node3;node4-left node5;node4-right node6;return 0; } 创建七个结点使用前六个组成一个二叉树留一个备用 -2.二叉树的前序中序后序遍历 前序根节点-左子树-右子树 代码实现 //前序 void PrevOrder(BT* root) {if (NULL root){printf(NULL );return;}printf(%d , root-data);PrevOrder(root-left);PrevOrder(root-right); } 前序递归展开图只要有节点它就一定有子节点例如3他就需要遍历它的两颗空树NULL大家可以画一下递归展开图利于我们理解递归 前序大致的顺序1 2 3 NULL NULL NULL 4 5 NULL NULL 6 NULL NULL 测试 中序左子树-根节点-右子树 代码实现 //中续 void InOrder(BT* root) {if (NULL root){printf(NULL );return;}InOrder(root-left);printf(%d , root-data);InOrder(root-right); } 中序递归展开图 中序顺序NULL NULL 3 2 NULL 1 NULL 5 NULL 4 NULL 6 NULL  测试 后序左子树-右子树-根 代码实现 void PostOrder(BT* root) {if(NULL root){printf(NULL);return;}PostOrder(root-left);PostOrder(root-right);printf(%d\n, root-data); } 后续递归展开图 后序顺序NULL NULL 3 NULL 2 NULL NULL 5 NULL NULL 6 4 1 测试 -3.二叉树节点个数 代码实现 //求二叉树所有节点方法一: int size 0; //全局变量 int TreeSize(BT* root) {//使用静态变量//static int size 0; 不行因为初始化一次之后就不能在初始化了会造成累加if (NULL root){return;}size;TreeSize(root-left);TreeSize(root-right);return size; }方法二: int TreeSize1(BT* root, int* Size1) {if (NULL root){return;}(*Size1);TreeSize1(root-left, Size1);TreeSize1(root-right, Size1);return *Size1; }// 方法三 对比以上面两个代码大大的减少了代码量使用起来更有效率 int TreeSize3(BT* root) {return root NULL ? 0 :TreeSize3(root-left) TreeSize3(root-right) 1; } 方法三递归展开图 总节点为: 6 测试 -4.二叉树的高度/深度 代码实现 int BinaryTreeHeight(BT* root) {if(root NULL){return 0;}int lHeight BinaryTreeHeight(root-lrft);int rHeight BinaryTreeHeight(root-right);return lHeight rHeight ? lHeight 1 : rHeight 1; } 递归展开图 这张图只标记了左子树的递归展开右子树也是一样的最后左子树和右子树深度相比将大那个加1输出就可以了 测试 -5.求二叉树k层的个数 代码实现 //求k层的个数 int TreeLevelK(BT* root, int k) {if (root NULL){return 0;}if (k 1){return 1;}int leftk TreeLevelK(root-left, k - 1);int right TreeLevelK(root-right, k - 1);return leftk right; } 递归展开图 求二叉树第三层的节点个数 测试 -6.二叉树查找值为x的节点 代码实现 //二叉树查找值为x的结点 BT* BinaryTreeFind(BT* root, BTDataType x) {if (root NULL)return NULL;if (root-data x)return root;BT* lret BinaryTreeFind(root-left, x);if (lret)return lret;BT* rret BinaryTreeFind(root-right, x);if (rret)return rret;return NULL; }递归展开图 测试 -7.层序遍历 层序遍历是使用队列实现的这里没有使用递归这里看我上几节写的队列 将链表的成员换为二叉树的节点用来存储二叉树的节点然后利用队列的性质将二叉树的值层序输出就可以了 //层序遍历 void LevelOrder(BT* root) {Queue q;QueueInit(q);if(root)QueuePush(q, root);printf(LevelOrder: );while (!QueueEmpty(q)){BT* front QueueFront(q);QueuePop(q);printf(%d , front-data);if (front-left)QueuePush(q, front-left);if (front-right)QueuePush(q, front-right);}QueueDestroy(q); } 测试
http://www.dnsts.com.cn/news/279747.html

相关文章:

  • 宁波江北区城市建设档案馆网站网站备案证书下载失败
  • 湖南网站设计对网络营销的认识
  • 谁需要做网站的嘉兴网上110在线咨询
  • 影视传媒公司网站php源码wordpress自带编辑器
  • 网站开发和程序开发的却别制作一个网站代码
  • 竞价网站推广公众号 网站开发
  • 做盒饭的网站拜师做网站
  • 哪个网站可以做免费商业推广腾讯服务商平台
  • 如何建立网站管理系统开发一款网站需要多少钱
  • 南昌大学作风建设网站杭州公司展厅设计公司
  • 重庆最有效的网站推广平台代理商
  • 西安网站建设APP开发wordpress图片模糊加载
  • 图列说明网站开发的流程厦门网站推广
  • 网站运营专员具体每天怎么做学产品设计专业后悔了
  • 海珠建网站公wordpress小工具缓存
  • 中小企业网站建设 论文品牌营销的概念
  • 深圳网站制作建设公司网页设计与制作摘要
  • 关于网站建设的书石家庄响应式模板建站
  • 优秀毕业设计网站设计静态网站需要数据库吗
  • 网站的主域名中山建设招聘信息网站
  • 中润建设集团有限公司网站群免费做视频相册的网站
  • 网站建设与管理难学吗百度趋势搜索大数据
  • 高端用户群浏览网站网站建设公司福州
  • 微商城网站建设合同下载wordpress如何设置logo
  • 秦皇岛学网站建设系统开发是系统建设中工作任务最为繁重的阶段
  • 申请备案 关网站上海都市建筑设计有限公司
  • 河南省和城乡建设厅网站共享办公都有哪些公司
  • wordpress网站换空间简易的建筑人才网
  • 网页版qq聊天登录入口北京和隆优化是干嘛的
  • 高端模板建站报价外包平台都有哪些