7-3 树的同构 (25 分)

博客主要讨论了树的同构概念,特别是在PTA平台上的7-3题目,指出在理解题目数据结构和处理换行符方面的关键点。作者分享了遇到的问题,即在本地编译器通过的代码在PTA上显示错误,以及如何通过调整换行符处理方式(从`getchar()`改为`scanf()`或`fgets()`)来解决问题并最终获得正确答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7-3 树的同构 (25 分)


树的同构:这道题主要是能够读懂题意,给的数据中左右子树的编号是你输入数据时的编号,
例如:
A 1 2
他的意思是:
A的左子树是输入的编号为1的数据(就是输入的第二组数据)
A的右子树是输入的编号为2的数据(就是输入的第三组数据)
以此类推。。。

我不知道为什么在我电脑的编译器上sample 1 可以正确的输出Yes,但是上交PTA就显示答案错误。
希望有看到的小伙伴能帮我看一下吧。


现已解决, 解决方案在最下面。

下面是我的代码:

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

typedef struct Node TreeNode;
struct Node{
   
	char name;
	char left;
	char right;
};

int main()
{
   
	int n;
	int i,j;
	int count = 0;//判断比配次数
	TreeNode *Anode,*Bnode;
	scanf("%d",&n);
	getchar();
	//动态分配
	Anode = (TreeNode*)malloc(sizeof(struct Node)*n);
	Bnode = (TreeNode*)malloc(sizeof(struct Node)*n);
	//输入
	for(i=0;i<n;i++){
   
		scanf("%c %c %c",&Anode[i].name,&Anode[i].left,&Anode[i].right);
		fflush(stdin);
	}
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;i++){
   
		scanf("%c %c %c",&Bnode[i].name,&Bnode[i].left,&Bnode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值