首页 > 其他分享 >将给定的表达式树(二叉链表存储)转换为等价的中缀表达式(递归)

将给定的表达式树(二叉链表存储)转换为等价的中缀表达式(递归)

时间:2024-11-09 22:20:15浏览次数:1  
标签:中缀 dep 链表 BtreeToExp root 表达式


3765. 表达式树
可以拿这题验证自己的代码对不对

ps:这里不是这题的答案,参照代码思路写即可

void  BtreeToe(Btree *root)
{
	BtreeToExp(root,1); //根的高度为1	
}


void BtreeToExp(Btree *root,int dep)
{
	if(root==NULL) return ;//如果是空结点 返回
	else if(!root->left && !root->right) cout<<root->data;//如果是叶节点 直接输出操作数
	else if{
		if(dep>1) cout<<"(";//如果有子表达式 输出左括号
		BtreeToExp(root->left,dep+1);//进左子树 记得修改dep
		cout<<root->data;
		BtreeToExp(root->right,dep+1);//进右子树 记得修改dep
		if(dep>1) cout<<")";//有子表达式 输出右括号
	}
	
}

标签:中缀,dep,链表,BtreeToExp,root,表达式
From: https://www.cnblogs.com/swjswjswj/p/18537389

相关文章

  • AcWing 827:双链表 ← 数组模拟
    【题目来源】https://www.acwing.com/problem/content/829/【题目描述】实现一个双链表,双链表初始为空,支持5种操作:  ●在最左侧插入一个数;  ●在最右侧插入一个数;  ●将第k个插入的数删除;  ●在第k个插入的数左侧插入一个数;  ●在第k个......
  • 包含注册登录界面的单链表学生管理系统
    1、使用fscanf和fprintf实现登录注册界面,登录成功显示学生管理系统菜单界面。2、学生信息结构体(学号,姓名,年龄)3、界面功能包含:录入学生信息,输出学生信息,任意位置删除学生信息,任意位置插入学生信息,任意位置修改学生信息,任意位置查找学生信息,表头插入一个学生,表尾插入一个学生信......
  • 数据结构:链表oj题
    目录题1.删除链表中的某个元素val题目表述:思路1:在源链表中进行删除更改思路2:创建一个新链表题2:反转一个链表问题描述:思路1:在源链表内部进行操作思路2:创建一个新链表题3:寻找链表中间位置题目描述:思路1:思路2:快慢指针题1.删除链表中的某个元素val题目表述:......
  • 【数据结构】快慢指针探秘:理解链表与数组中的环结构
    在处理链表或数组时,我们经常需要在一次遍历中找到特定的位置或检测某种模式。这时,快慢指针技术就能成为强大的工具,尤其在链表面试题中。本文将详细介绍什么是快慢指针、它们的工作原理,并通过一些实际应用帮助你理解这种技巧。学完后,你将掌握这种技巧的核心以及如何在代码中......
  • 【华为OD技术面试手撕真题】82、环形链表II | 手撕真题+思路参考+代码解析(C & C++ & J
    文章目录一、题目......
  • 链表
    链表部分(链表)707.设计链表(模版,通过了valgrind测试)实现单向链表,即每个节点仅存储本身的值和后继节点。除此之外,我们还需要一个哨兵(sentinel)节点作为头节点,和一个size参数保存有效节点数。如下图所示。初始化时,只需创建头节点head和size即可。实现get(index)时,......
  • Shell系列(2)正则表达式、awk与sed用法
    一、正则表达式正则表达式(RegularExpression,简称regex或regexp)是一种强大的文本处理工具,用于搜索、替换、检索或校验符合特定模式的文本。正则表达式由一系列字符组成,这些字符可以是普通字符(如字母、数字等)或特殊字符(称为元字符),它们定义了搜索模式。1、基本正则与扩展正......
  • JS之正则表达式
    一、什么是正则表达式<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......
  • C++ 函数对象、函数指针与Lambda表达式
    C++函数对象、函数指针与Lambda表达式函数指针函数指针(FunctionPointer)是指向函数的指针变量。它可以存储函数的地址,并通过该指针变量来调用该函数。函数指针的声明使用指针符号,指向的类型为函数的返回类型和参数列表,如int(funcPtr)(int,int);。函数指针的值可以指向相同......
  • C语言双向链表
    一、优势 与单链表对比,双向链表的增、删、改无需遍历多次以查找目标节点前一节点与后一节点,效率提高,代码对比*单链表:1.插入:voidinsert(node*head,charName,intphonenumber,inttarget){ node*p=(node*)malloc(sizeof(node));//为新节点分配内存; p->next=sea......