#include <stdio.h> #include <stdlib.h> #include <string.h> int i=0; typedef struct tree{ char data; struct tree *left,*right; }tree; struct tree* creat(char str[],tree *root){ root=malloc(sizeof(tree)); root->data=str[i]; printf("%c",str[i]); i++; if(root->data=='#'){ root=NULL; } else{ creat(str,root->left); creat(str,root->right); } return root; } int main(void){ char str[80]; while(scanf("%s",&str)!=EOF){ tree *T=NULL; T=creat(str,T); } return 0; }输出超时错误的原因
时间: 2024-04-01 21:37:37 浏览: 34
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这个代码的核心是递归创建二叉树,但是输入格式存在问题,导致程序无法正常运行。scanf("%s",&str) 会读入一个字符串,但是没有指定字符串的长度,如果输入的字符串过长,就会导致数组越界,甚至可能导致程序崩溃。
另外,题目中没有给出输入数据的具体格式,如果每行只有一个字符串,那么 while 循环可能会一直运行下去,直到输入结束,导致超时错误。在处理输入时,应该根据具体情况进行适当的判断和处理。
阅读全文