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

网站建设 博采网络 学校网站建设整体设计流程

网站建设 博采网络 学校,网站建设整体设计流程,电子商务网站的建设包含哪些流程图,网页游戏排行榜知乎那么本篇文是初阶数据结构这个系列的最后一篇文章,那么闲话少叙,我们直接进入正题 在讲二叉树的一些之前知识点之前,我先给大家送个小礼物哈 手搓二叉树 typedef int BTDataType ; typedef struct BinaryTreeNode { BTDataType _data …

那么本篇文是初阶数据结构这个系列的最后一篇文章,那么闲话少叙,我们直接进入正题

在讲二叉树的一些之前知识点之前,我先给大家送个小礼物哈

手搓二叉树

typedef int BTDataType ;
typedef struct BinaryTreeNode
{
BTDataType _data ;
struct BinaryTreeNode * _left ;
struct BinaryTreeNode * _right ;
} BTNode ;
BTNode * CreatBinaryTree ()
{
BTNode * node1 = BuyNode ( 1 );
BTNode * node2 = BuyNode ( 2 );
BTNode * node3 = BuyNode ( 3 );
BTNode * node4 = BuyNode ( 4 );
BTNode * node5 = BuyNode ( 5 );
BTNode * node6 = BuyNode ( 6 );
node1 -> _left = node2 ;
node1 -> _right = node4 ;
node2 -> _left = node3 ;
node4 -> _left = node5 ;
node4 -> _right = node6 ;
return node1 ;
}

手搓二叉树的思路

首先创建一个结构体,且结构体里的元素也是需要自己设置,就拿链表来举例,结构体内必须包含数据以及指向下一个节点的指针next,那么返回到二叉树这里,结构体需要包含的就是数据,以及左右指针,然后创建子节点以及子节点之间相互连接

前序遍历

那么我们可以先从这个图中得到一个结论

前序遍历:根  左子树   右子树

这里我也是给大家准备了一个小视频,大家可以参考一下

二叉树前序遍历思路讲解

源代码

void FrontOrder(TFT* node)
{
    if (node == NULL)
    {
        printf("N ");
        return;
    }
    printf("%d ", node->data);
    FrontOrder(node->left);
    FrontOrder(node->right);
}

中序遍历

我们先来说一下结论

中序遍历:左子树    根     右子树

这里的操作我也给大家准备了 一个小视频,大家可以参考一下

二叉树中序遍历思路讲解

源代码

void MiddleOrder(TFT* node)
{
    if (node == NULL)
    {
        printf("N ");
        return;
    }
    MiddleOrder(node->left);
    printf("%d ", node->data);
    MiddleOrder(node->right);
}

后序遍历

还是一样,我们先讲结论

后序遍历:左子树   右子树   根

这里的操作我也给大家准备了 一个小视频,大家可以参考一下

二叉树的后序遍历

源代码

void BehindOrder(TFT* node)
{
    if (node == NULL)
    {
        printf("N ");
        return;
    }
    BehindOrder(node->left);
    BehindOrder(node->right);
    printf("%d ", node->data);
}

前中后序的共同特点

通过递归的方法,进行遍历

节点计数

思路:当节点不为空时,计数器+1,节点为空时,计数器+0,然后用递归进行遍历

源代码

int TreeSize(TFT* root)
{
    /*int size = 0;*/
    if (root == NULL)
        return 0;
    else
        ++size;

    TreeSize(root->left);
    TreeSize(root->right);
    return size;
}

计算树的高度

思路:进入函数后先判空,如果为空,则返回0,不为空时,先记录当前左右两科树的高点,然后进行左右判断,谁大谁加1

源代码

int TreeHighSize(TFT* node)
{
    if (node == NULL)
        return 0;
    int left = TreeHighSize(node->left);
    int right = TreeHighSize(node->right);
    return left > right ? left + 1 : right + 1;
}

树的销毁

树的销毁其实不难,基本上就是还原变量指针等等

源代码

void DestroyTree(TFT* node)
{
    if (node == NULL)
        return;
    DestroyTree(node->left);
    DestroyTree(node->right);
    free(node);
}

那么初阶数据结构系列的文章就先给大家更新到这里,如果喜欢我的文章,还请各位观众老爷们留个赞谢谢,我们下期再见

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

相关文章:

  • 公司内部网站一般都怎么维护微信小说网站开发
  • uc投放广告网站要自己做吗中国电信网站备案系统
  • 企业静态网站陕西省住房与建设厅网站
  • 做营销网站那个好企业seo网络营销
  • wordpress网站500免费供求信息发布
  • 网站设计培训学校有哪家赤峰网站建设哪家好
  • 潍坊市网站网站模板免费
  • 百度创建网站模板建网站哪个品牌好
  • 沈阳网站制作聚艺科技免费小程序网站
  • 做戒烟网站素材本地wordpress 固定连接
  • 网站系统规划报告企业网站建设管理平台
  • 网站建设开发哪些开发语言国外最大的设计网站有哪些方面
  • 上海工程建设造价信息网站免费建网站平台哪个好
  • 山西集团网站建设ccyy切换路线专线
  • 做网站需要源码吗公司网站手机版
  • 域名网站备案茂名模板建站哪家好
  • 山西网络公司公司seo刷关键词排名免费
  • html5在线网站中国男女做网站
  • 自己做一个网站需要什么中国字体设计网
  • 线上问诊网站建设网站上传照片失败
  • 网站开发 -(广告)公司装修便宜
  • 购物网站开发方案网站建设与维护经营范围
  • 网站页面分辨率做网站 套用模板之后用什么改
  • 品牌网站制作报价表有哪些app软件开发公司
  • 对网站二次开发的认识cento安装wordpress
  • 昆钢建设集团网站假网站怎么做
  • 手机网站样式六安网站优化
  • 做网站的前途怎么样软件工程专业就业方向
  • 重庆一品建设集团有限公司网站云畅网站建设
  • 个人网站名wordpress文章点击数