数据结构PTA第三周作业1:树的同构

带讲解的原题,按照讲的思路写完程序出现了段错误,为此看了一篇相关的博客依然解决不了问题。

C/C++中的段错误:https://www.cnblogs.com/hello--the-world/archive/2012/05/31/2528326.html

后来看了别人的做法:

Debug1:改了数组checkroot的定义方式,通过的测试点由2个变成3个

Debug2:改了输入的字符串格式,\n改到了行首,就全部正确了

再把checkroot的定义方式改回原来的写法,还是全部通过(为什么一开始改就可以多增一个通过点?)

 

#include

struct TreeNode{
    char Element;
    int tl;
    int tr;
}T1[100],T2[100];

int BuildTree(struct TreeNode T[]);
int Isomorphic(int r1, int r2);

int main()
{
    int r1,r2; //根节点标号
    r1 = BuildTree(T1);
    r2 = BuildTree(T2);
    if(Isomorphic(r1,r2)){
        printf("Yes\n");
    }else{
        printf("No\n");
    }
    return 0;
}

int BuildTree(struct TreeNode T[])
{
    int N, Root=-1;
    scanf("%d",&N); //读入树的节点个数
    
    if(N){
        //int* checkroot = (int*)malloc(sizeof(int)*N); //Debug1:2个正确->3个正确
        int checkroot[N];
        for(int i=0; i

 

你可能感兴趣的:(PTA)