4.8 树的实现(下)

目录

tree.h

tree.c

test.c


代码实现

树的先序输入,先序输出、中序输出、与后序输出

tree.h

typedef char data_t;
typedef struct node_t {
​	data_t data;
​	struct node_t * left;
​	struct node_t * right;
}bitree;

bitree *tree_create();
void preorder(bitree *r);
void inorder(bitree *r);
void posorder(bitree *r);

tree.c

#include <stdio.h>
#include <stdlib.h>
#include "tree.h"

bitree * tree_create(){
​	data_t ch;
​	bitree *r;

```
scanf("%c",&ch);
if(ch=='#')
	return NULL;
if ((r=(bitree *)malloc(sizeof(bitree)))==NULL){
	printf("malloc failed\n");
	return NULL;
}
r->data = ch;
r->left = tree_create();
r->right = tree_create();
return r;
```

}
void preorder(bitree *r){
​	if(r==NULL){
​		return;
​	}
​	printf("%c",r->data);
​	preorder(r->left);
​	preorder(r->right);

}
void inorder(bitree *r){
​	if(r==NULL){
​		return;
​	}
​	preorder(r->left);
​	printf("%c",r->data);
​	preorder(r->right);
}
void posorder(bitree *r){
​	if(r==NULL){
​		return;
​	}
​	preorder(r->left);
​	preorder(r->right);
​	printf("%c",r->data);

}

test.c

#include <stdio.h>
#include <stdlib.h>
#include "tree.h"

int main(int argc, const char *argv[])
{
​	bitree *r;
​		if ((r=tree_create())==NULL)
​			return -1;
​		

```
	preorder(r);
	puts("");

	inorder(r);
	puts("");

	posorder(r);
	puts("");

return 0;
```

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值