mary__lin 2014-04-21 07:55 采纳率: 0%
浏览 871

求高数解答二叉树的递归建立问题

从书上看了一个递归建立二叉树的算法(利用前序遍历建立二叉树).代码如下(这个递归的结束条件是输入一个分号";")但是我不明白的是这个分号是从程序的哪里被读入从而结束递归的. 希望高手解答
#include
#include
typedef char Type;
typedef struct BinTNode{
Type data;
struct BinTNode lchild;
struct BinTNode *rchild;
}BinTNode;
//递归建立
void CreateBinTree(BinTNode **T)
{
Type item;
scanf("%c",&item);
if(item==';')return;
if(item!='#')
{
*T=(BinTNode
)malloc(sizeof(BinTNode));
(*T)->data=item;
CreateBinTree(&((*T)->lchild));
CreateBinTree(&((*T)->rchild));
}
else
{
(*T)=NULL;
}
}
//前序遍历
void PreOrder(BinTNode *T)
{
// printf("mx");
if(T!=NULL)
{
printf("%c",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
int main()
{
BinTNode *T;
CreateBinTree(&T);
PreOrder(T);
system("pause");
return 0;
}
运行后发现.不管输入"ABC##DE#G##F### ;" 还是"ABC##DE#G##F######### ;" 都可以成功运行

建立起来的二叉树和运行结果如图所示

CSDN移动问答

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 vmware exsi重置后的密码
    • ¥15 易盾点选的cb参数怎么解啊
    • ¥15 MATLAB运行显示错误,如何解决?
    • ¥15 c++头文件不能识别CDialog
    • ¥15 Excel发现不可读取的内容
    • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
    • ¥20 yolov5自定义Prune报错,如何解决?
    • ¥15 电磁场的matlab仿真
    • ¥15 mars2d在vue3中的引入问题