用c语言创建一棵二叉树并使其显现出来
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用C语言创建一棵二叉树并使其显现出来。
10
[ 标签:c语言,二叉树]
要尽量简单些,难的小弟看不懂一定要用C语言哦!!C++小弟没学过!!谢谢!!
じ☆ve灵回答:1 人气:1 解决时间:2009-06-28 23:41
满意答案
好评率:0%
#include "Stdio.h"
#include "Conio.h"
typedef struct node1
{
char data;
struct node1 *lchild,*rchild;
}Btchinalr;
Btchinalr *createbt()
{
Btchinalr *q;
struct node1 *s[30];
int i,j;
char x;
printf("i,x=");scanf("%d,%c",&i,&x);
while(i!=0&&x!='$')
{
q=(Btchinalr*)malloc(sizeof(Btchinalr));
q->data=x;
q->lchild=NULL;q->rchild=NULL;
s[i]=q;
if(i!=1)
{
j=i/2;
if(i%2==0)
s[j]->lchild=q;
else
s[j]->rchild=q;
}
printf("i,x=");scanf("%d,%c",&i,&x);
}
return s[1];
}
void preorder(Btchinalr* bt)/*先序遍历*/ {
if(bt!=NULL)
{
printf("%c ",bt->data);
preorder(bt->lchild);
preorder(bt->rchild);
}
}
int main(void)
{
Btchinalr *bt=createbt();
printf("preorder:\n");
preorder(bt);
getch();
return 0;
}
输入示例:
1,A
2,B
3,C
4,D
5,E
6,F
12,G
25,H
0,$
结果为:ABDECFGH