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

关键字搜索网站怎么做微软网页制作工具

关键字搜索网站怎么做,微软网页制作工具,推广app赚钱的平台,山东省建设管理局网站导言 前面以及有了堆的基础,现在来学习二叉树。二叉树的学习和前面的数据结构很不一样,前面我们主要学习用数据结构储存数据,以及实际手搓数据结构的增删查改;而学习二叉树主要是为我们以后学搜索二叉树以及后面的AVL树等数据结构…

导言

前面以及有了堆的基础,现在来学习二叉树。二叉树的学习和前面的数据结构很不一样,前面我们主要学习用数据结构储存数据,以及实际手搓数据结构的增删查改;而学习二叉树主要是为我们以后学搜索二叉树以及后面的AVL树等数据结构做准备,我们主要学习遍历二叉树,学一下二叉树的结构。

二叉树的遍历

二叉树由结点组成,一个父节点最多有两个子节点

相信大家基本上都在学校学习过二叉树的遍历,但是其中的具体细节不一定清楚明白。

二叉树的遍历根据访问根节点的顺序分为三种

前序遍历:先访问根节点,然后遍历左子树,最后遍历右子树。

中序遍历:先遍历左子树,然后访问根节点,最后遍历右子树。

后序遍历:先访遍历左子树,然后遍历右子树,最后访问根节点。

前序遍历

接下来我们来手动测试一下前序遍历

前置说明

这里我们来定义一下二叉树的结构

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>typedef struct BinaryTreeNode
{int data;struct BinaryTreeNode* left;struct BinaryTreeNode* right;
}BTNode;

在测试的我们可以自己手搓一个二叉树测试用例出来

BTNode* BuyNode(int x)
{BTNode* node= (BTNode*)malloc(sizeof(BTNode));if (node == NULL){perror("malloc fail");return NULL;}node->data = x;node->left = NULL;node->right = NULL;
}BTNode* CreatBinaryTree()
{BTNode* b1 = BuyNode(1);BTNode* b2 = BuyNode(2);BTNode* b3 = BuyNode(3);BTNode* b4 = BuyNode(4);BTNode* b5 = BuyNode(5);BTNode* b6 = BuyNode(6);b1->left = b2;b1->right = b4;b2->left = b3;b4->left = b5;b4->right = b6;return b1;
}

这样我们就得到了一个二叉树

接下来用代码实现前序遍历,用递归实现。如果是NULL输出N并返回(注意return 不会直接结束程序,而是结束这次函数调用,如果是递归实现,可能还有很多次函数调用),否则输出data.


//前序遍历
void PrevOrder(BTNode* root)
{if (root == NULL){printf("N ");return;}printf("%d ", root->data);PrevOrder(root->left);PrevOrder(root->right);
}

调用关系图(逻辑图):

 栈帧开辟销毁情况:

代码运行结果

 中序遍历

遍历的顺序不同就是访问头节点的顺序不同,中序遍历就是访问左子树后才访问头节点

//中序遍历
void InOrder(BTNode* root)
{if (root == NULL){printf("N ");return;}InOrder(root->left);printf("%d ", root->data);InOrder(root->right);
}

我们先来看看运行结果

调用关系图(逻辑图):

 

后序遍历

//后序遍历
void PostOrder(BTNode* root)
{if (root == NULL){printf("N ");return;}PostOrder(root->left);PostOrder(root->right);printf("%d ", root->data);}

执行结果:

调用关系图(逻辑图): 

 

http://www.yayakq.cn/news/358530/

相关文章:

  • 西域数码网站建设中国煤炭建设协会网站qc
  • 通化建设工程信息网站商务网站建设是什么
  • wordpress全站网站建设需要注意事项
  • 哪种源码做视频网站好用服务器卸载wordpress
  • 做h5网站pc加手机版要多少钱黄页是干什么用的
  • 四库一平台证书查询台州优化官方网站
  • 电子商务平台发展现状seo搜索引擎排名优化
  • 新闻门户网站免费建设网站排名优化价格
  • 个人建设网站教程怎么建立自己的微信商城
  • 开发菏泽网站建设短视频代运营合作方案
  • 用ps切片做网站能不能完成网站新建设请示
  • 做手机网站兼容中国网创官方网站
  • 请描述网站开发的一般流程图成都专业制作网站公司
  • 做网站以前出名的公司软环境建设网站
  • 春晗环境建设有限公司网站中核集团八大子公司
  • asp网站增加新栏目在哪添加营销型网站建设价格是多少
  • 垂直门户网站怎么做江苏五星建设网站
  • 外贸网站虚拟主机社群网站建设
  • 设计需要看的网站有哪些简述网站建设的
  • 怎么看网站有没有被k开网店的流程和步骤
  • 想学网站开发1企业网站案例
  • 小贷做网站湖州网站设计浙北数据
  • 商城网站开发方案室内设计效果图app
  • 网站建设培训课程移动互联网包括三个基本要素( )、( )和( )。
  • 浙江职业能力建设网站做企业网站的尺寸是多少
  • 微信点赞网站怎么做人工优化网站怎么做
  • 免费外贸网站模板珠海北京网站建设
  • visual studio 2010 网站开发深圳积分商城网站设计
  • 北京电商网站开发公司同服务器网站查询工具
  • 邯郸单位网站建设建设网站要钱么