求c语言数据结构二叉树的建树,前序遍历,输出树的代码,能用采纳。

 我来答
百度网友8d8cdaf
推荐于2017-12-15 · TA获得超过2708个赞
知道小有建树答主
回答量:691
采纳率:82%
帮助的人:257万
展开全部
#include
#include
#define MAXSIZE 100 //二叉树中最多的结点数 
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;

struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//定义函数指针
typedef void(* Visit)(BiTree);
//二叉树的初始化
void Init_BiTree(BiTree *T)
{
*T = NULL;
}
//判断二叉树是否为空,返回1
int IsEmpty_BiTree(BiTree *T)
{

return *T == NULL;
}
//创建二叉树
void Create_BiTree(BiTree *T)
{
char ch;
ch = getchar();
//当输入的是"#"时,认为该子树为空

if(ch == '#')

*T = NULL;
//创建树结点
else{

*T = (BiTree)malloc(sizeof(BiTNode));

(*T)->data = ch; //生成树结点
//生成左子树
Create_BiTree(&(*T)->lchild);

//生成右子树
Create_BiTree(&(*T)->rchild);

}
}
//输出结点的值
void Print_BiTreeNode(BiTree T)
{
printf("%c\t",T->data);

}
//先序遍历二叉树
void PreOrder_BiTree(BiTree T,Visit visit)
{
if(!IsEmpty_BiTree(&T))
{
visit(T);

PreOrder_BiTree(T->lchild,visit);
PreOrder_BiTree(T->rchild,visit);

}
}
int main(){
BiTree T;
//将二叉树初始为一个空的二叉树
Init_BiTree(&T);
//创建二叉树
Create_BiTree(&T);
//先序遍历
printf("\n先序遍历结果:");
PreOrder_BiTree(T,Print_BiTreeNode);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式