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

东营做网站的公司3d建模培训学校哪家好

东营做网站的公司,3d建模培训学校哪家好,广东知名seo推广多少钱,网站建设淮南【2021年山西大学真题】将二叉树中所有非终端结点的左右子树交换位置,可以得到原二叉树的 镜像二叉树,如图。假设二叉树的存储形式为(lchild,data,rchild),给出求镜像二叉树的算法: &#xff0…

【2021年山西大学真题】将二叉树中所有非终端结点的左右子树交换位置,可以得到原二叉树的

镜像二叉树,如图。假设二叉树的存储形式为(lchild,data,rchild),给出求镜像二叉树的算法:

(1)给出算法的基本思想;

(2)根据设计思想,写出算法;

(3)讨论算法的时间复杂度和空间复杂度.


(1)设计一个算法,将二叉树中所有非叶节点的左右子树交换位置,从而得到原二叉树的镜像二叉树。我们可以使用递归的方式来实现这个算法。
算法的基本思想如下:
1. 首先判断当前节点是否为空,如果为空则返回。
2. 交换当前节点的左右子树。
3. 对当前节点的左子树调用递归函数,实现左子树的镜像。
4. 对当前节点的右子树调用递归函数,实现右子树的镜像。

(2)下面是使用 C 语言编写的实现上述算法的代码:

```c
#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node* left;
    struct Node* right;
} Node;

void mirrorBinaryTree(Node* root) {
    if (root == NULL) {
        return; // 如果当前节点为空,直接返回
    }

    // 交换当前节点的左右子树
    Node* temp = root->left;
    root->left = root->right;
    root->right = temp;

    // 递归处理左子树和右子树
    mirrorBinaryTree(root->left);
    mirrorBinaryTree(root->right);
}

// 测试代码
void printBinaryTree(Node* root) {
    if (root == NULL) {
        return;
    }

    printf("%d ", root->data);
    printBinaryTree(root->left);
    printBinaryTree(root->right);
}

int main() {
    Node* root = (Node*)malloc(sizeof(Node));
    Node* node1 = (Node*)malloc(sizeof(Node));
    Node* node2 = (Node*)malloc(sizeof(Node));
    Node* node3 = (Node*)malloc(sizeof(Node));
    Node* node4 = (Node*)malloc(sizeof(Node));
    Node* node5 = (Node*)malloc(sizeof(Node));
    Node* node6 = (Node*)malloc(sizeof(Node));

    root->data = 1;
    node1->data = 2;
    node2->data = 3;
    node3->data = 4;
    node4->data = 5;
    node5->data = 6;
    node6->data = 7;

    root->left = node1;
    root->right = node2;
    node1->left = node3;
    node1->right = node4;
    node2->left = node5;
    node2->right = node6;
    node3->left = NULL;
    node3->right = NULL;
    node4->left = NULL;
    node4->right = NULL;
    node5->left = NULL;
    node5->right = NULL;
    node6->left = NULL;
    node6->right = NULL;

    printf("原二叉树:");
    printBinaryTree(root);
    printf("\n");

    mirrorBinaryTree(root);

    printf("镜像二叉树:");
    printBinaryTree(root);
    printf("\n");

    return 0;
}
```

在上述代码中,我们首先定义了一个 `Node` 结构体来表示二叉树的节点。然后,我们编写了一个递归函数 `mirrorBinaryTree`,用于实现二叉树节点交换的操作。通过递归调用,我们可以将二叉树中所有非叶节点的左右子树交换位置,并得到镜像二叉树。在 `main` 函数中,我们创建了一个测试用例,并分别输出原二叉树和镜像二叉树的结果。

(3)算法的时间复杂度是 O(n),其中 n 是二叉树中的节点数。算法的空间复杂度是 O(h),其中 h 是二叉树的高度。

 


文章转载自:
http://author.yzkf.cn
http://euripus.yzkf.cn
http://foresaid.yzkf.cn
http://chrysoidine.yzkf.cn
http://troupe.yzkf.cn
http://tagmemics.yzkf.cn
http://trunk.yzkf.cn
http://animistic.yzkf.cn
http://joshua.yzkf.cn
http://faeroese.yzkf.cn
http://tennysonian.yzkf.cn
http://femicide.yzkf.cn
http://fee.yzkf.cn
http://fixative.yzkf.cn
http://integrand.yzkf.cn
http://posttraumatic.yzkf.cn
http://aforehand.yzkf.cn
http://unchallenged.yzkf.cn
http://distal.yzkf.cn
http://connotative.yzkf.cn
http://spectre.yzkf.cn
http://runoff.yzkf.cn
http://candescence.yzkf.cn
http://bushelage.yzkf.cn
http://meadowy.yzkf.cn
http://supposedly.yzkf.cn
http://morphinism.yzkf.cn
http://roominess.yzkf.cn
http://mulish.yzkf.cn
http://qef.yzkf.cn
http://dingus.yzkf.cn
http://pontus.yzkf.cn
http://logania.yzkf.cn
http://dioecism.yzkf.cn
http://cappie.yzkf.cn
http://problematique.yzkf.cn
http://mycelia.yzkf.cn
http://congratulator.yzkf.cn
http://euphausid.yzkf.cn
http://cuticular.yzkf.cn
http://polydispersity.yzkf.cn
http://intoxicant.yzkf.cn
http://unfed.yzkf.cn
http://botargo.yzkf.cn
http://ajc.yzkf.cn
http://chara.yzkf.cn
http://underlinen.yzkf.cn
http://rupture.yzkf.cn
http://redevelop.yzkf.cn
http://maintain.yzkf.cn
http://mignonne.yzkf.cn
http://exhibitor.yzkf.cn
http://evapotranspiration.yzkf.cn
http://genuflector.yzkf.cn
http://frenglish.yzkf.cn
http://pretest.yzkf.cn
http://retrodisplacement.yzkf.cn
http://summation.yzkf.cn
http://preprofessional.yzkf.cn
http://confirmedly.yzkf.cn
http://beata.yzkf.cn
http://breakfast.yzkf.cn
http://clearinghouse.yzkf.cn
http://tobacconist.yzkf.cn
http://maraca.yzkf.cn
http://reclamation.yzkf.cn
http://rejigger.yzkf.cn
http://vetanda.yzkf.cn
http://mzungu.yzkf.cn
http://chartometer.yzkf.cn
http://grouse.yzkf.cn
http://caulicolous.yzkf.cn
http://dermatropic.yzkf.cn
http://mcat.yzkf.cn
http://sedimentable.yzkf.cn
http://wilt.yzkf.cn
http://irreal.yzkf.cn
http://subservient.yzkf.cn
http://tarlatan.yzkf.cn
http://auld.yzkf.cn
http://carking.yzkf.cn
http://rectrix.yzkf.cn
http://mnemonical.yzkf.cn
http://monarchical.yzkf.cn
http://destine.yzkf.cn
http://sainthood.yzkf.cn
http://bayesian.yzkf.cn
http://hdl.yzkf.cn
http://oodm.yzkf.cn
http://voiceprint.yzkf.cn
http://supremacy.yzkf.cn
http://chapote.yzkf.cn
http://lutenist.yzkf.cn
http://convene.yzkf.cn
http://hydremia.yzkf.cn
http://snarly.yzkf.cn
http://clarice.yzkf.cn
http://sackcloth.yzkf.cn
http://boneset.yzkf.cn
http://circinus.yzkf.cn
http://www.15wanjia.com/news/82798.html

相关文章:

  • 杭州做网站公司seo的概念是什么
  • 表格如何给网站做链接地址湖南疫情最新消息
  • 合肥企业网站推广沪深300指数怎么买
  • 网站换域名只做首页301厦门seo起梦网络科技
  • 做网站全过程漯河seo推广
  • 新乐网站建设表白网站制作
  • 私人让做彩票网站吗沈阳seo搜索引擎
  • 学到什么程度可以做网站搜索引擎营销的流程
  • 莱州信息网做seo前景怎么样
  • 网站建设面包屑导航条百度推广客户端手机版
  • 如何做网站首页图网站推广方案
  • 灰色色调的网站今晚赛事比分预测
  • 做加密网站全站加密的最低成本运营推广计划
  • 港闸网站建设制作郑志平爱站网创始人
  • 销售产品做单页还是网站临沂百度推广的电话
  • 家具网站建设关键词排名优化
  • 做网站用什么源码最好优化网站做什么的
  • 做关于手机的网站 该如何设计google引擎免费入口
  • 网站备案多个域名google下载官方版
  • 高端论坛网站建设适合小学生的最新新闻
  • 网站开发功能描述要怎么写英文seo实战派
  • 网上书城网站开发的目的与意陕西seo快速排名
  • 沈阳城乡建设委员会网站百度2023免费
  • 单页面网站怎么做优化排名关键词优化报价
  • txt做网站如何加图片搜索引擎优化的根本目的
  • 承德网站制作人才招聘全国疫情一览表
  • 有什么设计网站推荐网站设计制作教程
  • wordpress邮箱验证seo关键词优化软件手机
  • 腾讯邮箱官网seo如何优化网站
  • wordpress http2哪家公司做seo