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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 有赏,i卡绘世画不出
    • ¥15 如何用stata画出文献中常见的安慰剂检验图
    • ¥15 c语言链表结构体数据插入
    • ¥40 使用MATLAB解答线性代数问题
    • ¥15 COCOS的问题COCOS的问题
    • ¥15 FPGA-SRIO初始化失败
    • ¥15 MapReduce实现倒排索引失败
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码