用c语言创建一棵二叉树并使其显现出来

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档