m0_72588844 2022-11-28 10:37 采纳率: 85.7%
浏览 8
已结题

pta树种统计题 请能人给看看到底怎么回事

问题遇到的现象和发生背景

按顺序来看明明是不一样的字符串,他却匹配成功了 不知道为什么,能否有人给看看怎么回事?

用代码块功能插入代码,请勿粘贴截图
我的解答思路和尝试过的方法

我先创建好一个结点,然后用它的name去和根节点的name比较 然后根据情况进行插入,但是不知道为什么匹配总出错

我想要达到的结果
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 31
typedef struct TNode *tree;
struct TNode
{
    char name[max];
    int data;
    tree left;
    tree right;
};
int bs(char*s,char *str)
{
    return (strcmp(s,str));
}
tree buildTree(char *str)
{
    tree t=(tree)malloc(sizeof(struct TNode));
    t->left=NULL;
    t->right=NULL;strcpy(t->name,str);
    t->data=1;
    return t;
}
void Print(tree t,int n)
{
    if(t==NULL)
    {
        return;
    }
    Print(t->left,n);
    printf("%s %.4lf%\n",t->name,100*t->data/n);
    Print(t->right,n);
}
tree insertTree(tree t,tree t0)
{
    if(strcmp(t->name,t0->name)==0)
    {
        t->data++;
    }else
    {
        int p=bs(t->name,t0->name);
        if(p>0)
        {
            if(t->left!=NULL)
            {
                insertTree(t->left,t0);
            }else
            {
                t->left=t0;
            }
        }else
        {
            if(t->right!=NULL)
            {
                insertTree(t->right,t0);
            }else
            {
                t->right=t0;
            }
        }
    }
    return t;
}
int main()
{
    int n;scanf("%d",&n);getchar();
    char str[max];scanf("%s",str);getchar();
    tree s=(tree)malloc(sizeof(struct TNode));
    tree t=buildTree(str);
    while(n>1)
    {
        scanf("%s",s->name);getchar();
        s->left=NULL;s->right=NULL;s->data=1;
        insertTree(t,s);
        n--;
    }
    Print(t,n);
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月6日
    • 修改了问题 11月28日
    • 创建了问题 11月28日

    悬赏问题

    • ¥100 求数学坐标画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 自己瞎改改,结果现在又运行不了了
    • ¥15 链式存储应该如何解决
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站