| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 609 人关注过本帖
标题:关于二叉树及一些问题求解
取消只看楼主 加入收藏
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:3 
关于二叉树及一些问题求解
本来觉得递归二叉树挺简单的,但是实际动手下来发现,有些不理解的错。附上代码。
#include "stdio.h"
#include "malloc.h"
typedef struct BiNode
{
    char data;
    struct BiNode *lchild,*rchild;
}BiNode,*bi_tree;

void create_tree(bi_tree &T)
{
    char data;
    //printf("请按先序遍历输入结点的值 :\n");
    scanf("%c",&data);
    if(data==' ')
        T=NULL;
    else
    {
        T=(bi_tree)malloc(sizeof(bi_tree));
        if(T)
        {
            T->data=data;
            create_tree(T->lchild);
            create_tree(T->rchild);            
        }
    }
}
void visit(bi_tree T)
{
        printf("%c",T->data);
}
void pre_order(bi_tree T)   //前序

NULL)
        visit(T);
    pre_order(T->lchild); //断点
    pre_order(T->rchild);
}
void in_order(bi_tree T)  //中序遍历

   if(T!=NULL)
        in_order(T->lchild);
    visit(T);
    in_order(T->rchild);
}
void post_order(bi_tree T)
{
    if(T!=NULL)
        post_order(T->lchild);
    post_order(T->rchild);
    visit(T);
}
void main()
{
    bi_tree T;
    create_tree(T);
    pre_order(T);
    in_order(T);
    post_order(T);
}
有以下几个问题不懂。
第一就是,建立二叉树时,输入ABD  SD  D   ,这些空格怎么回事?就是读取时,明明是一个一个字符读取,怎么一下就可以把它按前序遍历输入完?  
第二就是,二级指针有些不懂,例如void create_tree(bi_tree &T)、void create_tree(bi_tree T)、void create_tree(bi_tree *T),还有构造结构体时的*bi_tree,怎么会用这个指针定义T?
第三就是,T=(bi_tree)malloc(sizeof(bi_tree)),和T=(bi_tree *)malloc(sizeof(bi_tree));,这个*号,有什么区别么?还有就是这个程序错在哪里了。
问题很多,抱歉。
搜索更多相关主题的帖子: include 二叉树 
2014-12-10 15:01
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
收藏
得分:0 
,递归就是再次引用creat_tree这个函数,那么再次引用也会用scanf输入吧?%c是读取一个字符,但是输入的是字符串,感觉不懂。还有就是typedef定义的是一个别名,将结点BiNode取别名为BiNode,我问的是二级指针的问题。最后,前中后的遍历除了函数调用顺序和函数名不一样,其他都一样,前序打掉了。
2014-12-10 20:13
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
收藏
得分:0 
没人么?
2014-12-11 18:36
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
收藏
得分:0 
似懂非懂,那么程序哪里出问题了?
2014-12-12 20:05
快速回复:关于二叉树及一些问题求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012091 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved