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

陕西响应式网站建设公司广西建设工程信息网

陕西响应式网站建设公司,广西建设工程信息网,上海建设工程造价协会官网,上海传媒公司总裁结婚2024王道408数据结构P144 T16 思考过程 首先看题目,要求我们把二叉树的叶子结点求出来并且用链表的方式存储,链接时用叶结点的右指针来存放单链表指针。我们很清楚可以看出来能用中序遍历递归的方式实现,因为第一个叶子结点在整棵树的最左下…

2024王道408数据结构P144 T16

思考过程

  1. 首先看题目,要求我们把二叉树的叶子结点求出来并且用链表的方式存储,链接时用叶结点的右指针来存放单链表指针。我们很清楚可以看出来能用中序遍历+递归的方式实现,因为第一个叶子结点在整棵树的最左下角。
  2. 我们先思考一下怎么把二叉树的叶子结点给求出来,假设有一颗二叉树t,只要t->lchild==NULL && t->rchild == NULL;就能说明此结点为叶子结点,然后还要判断该结点是否是第一个叶子结点
    • 如果是第一个叶子结点的话我们就要用一个head头结点和pre指针来存放第一个叶子结点head = t; pre = t;
    • 如果不是的话我们就按链表的方式存储就可以了,就是pre->rchild = t;pre = t;就这么easy。

举个例子

  1. 首先请出我们的老演员二叉树请添加图片描述我们需要一个头结点head和指针prestruct TreeNode* head = (struct TreeNode*)sizeof(struct TreeNode), *pre = NULL;pre指针我们就先赋值NULL。
  2. 然后我们直接开始递归到最左边的结点也就是结点D,Inorder(t->lchild);因为是中序遍历,先访问左子树。访问到D之后判断该结点是叶子结点,此时D是第一个叶子结点,所以把head和pre都赋值为D请添加图片描述然后我们都第一个叶子结点就成功加入到链表当中了。
  3. 然后代码回溯到结点B,再去找B到右子树E。当找到E时判断该结点是否是第一个叶子结点,发现不是第一个结点所以我们就可以直接把它加入进链表当中请添加图片描述
    让代码一直按中序遍历递归下去,这样题目就写完啦。

完整代码

//
// Created by 黎圣  on 2023/8/25.
//
#include "iostream"
typedef struct TreeNode
{char data;struct TreeNode *lchild, *rchild;
}*tree;
void CreateTree(tree &t)
{char ch = getchar();if (ch == '#')t = NULL;else{t = (struct TreeNode *)malloc(sizeof(struct TreeNode));t->data = ch;t->lchild = NULL;t->rchild = NULL;CreateTree(t->lchild);CreateTree(t->rchild);}
}
struct TreeNode *pre = NULL, *head = (struct TreeNode*)malloc(sizeof(struct TreeNode));
tree Inorder(tree &t)
{if (t){Inorder(t->lchild);if (t->lchild == NULL && t->rchild == NULL){//是否是第一个//是if (pre == NULL){head = t;pre = t;}//不是第一个else{pre->rchild = t;pre = t;}}Inorder(t->rchild);}return head;
}
int main()
{tree t;CreateTree(t);//ABD##E##CF##G##Inorder(t);while (head){printf("%c ", head->data);head = head->rchild;}return 0;
}

最后感谢b站up主@吸血小金鱼

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

相关文章:

  • 江门网站推广关于服饰搭配做的比较好的网站
  • destoon 手机网站模板用php做网站用到的工具
  • 泰安整站优化定制礼品公司
  • 描述网站建设的具体流程下载网站php源码
  • 昆山h5网站建设泉州网站设计公司
  • 技术支持 广州骏域网站建设专家销售型网站建设基本要素
  • 网站建设本科毕业设计论文装修公司网站怎么做
  • 用wordpress建站会不会显得水平差seo入门培训
  • 济南网站建设凡科ui培训班有用吗
  • 服务器安装完面板怎么做网站经典网络广告案例分析
  • 怎么做带购物功能的网站wordpress插件许可
  • 网站接入服务提供单位电商网站建设特色
  • 清远市seo网站设计联系方式专业图片在线制作网站
  • 厦门网站建设官网磁力猫torrentkitty官网
  • 怎么在自己网站上做拼图阿里云网站开发服务器
  • 网站是怎么建设的代理记账网站模板
  • 南京网站建设网站设计 雷仁网络小米路由做网站
  • 企业网站优化要多少钱外贸网站定制建站
  • 影响网站显示度的原因做软件的软件
  • 个人网站建站指南现在在百度做网站要多少钱
  • 深圳互联网网站建设漯河网站建设网站建设
  • 有关网站建设的书籍南京建设网站需要多少钱
  • 网站飘动石家庄发布最新公告
  • asp全静态企业网站百度网址ip
  • 国内外网站开发有哪些技术网站建设方案 预算
  • 南通门户网站域名服务商查询
  • 网站开发寻找潜在客户的途径网站建设专用图形库
  • 做网站先做首页免费网站加速软件
  • 建设银行大丰支行网站做视频官方网站
  • 黄浦做网站公司代发关键词排名包收录