数据结构(四)之二叉树

  • 二叉树

二叉树可以用数组和链式结构这两种方式来创建,这里只介绍二叉树的链式结构,并且实现二叉树的前序、中序和后序遍历。(运用二叉树组定义静态二叉树的方式以注释的形式写明)
二叉树的创建有三种方式:前序、中序和后序。这里只展现了前序遍历的方式。

#include<stdio.h>
#include<stdlib.h>
typedef struct btnode{
	//int data[1000];二叉树组,从上到下,从左到右依次存在数组里
	char data;
	//int llink,rlink;静态二叉树,分别存放左子树和右子树
	struct btnode *lchild;
	struct btnode *rchild; 
}BTnode,*BiTree;//tree[n+1];静态二叉树n个结点
void preorder(BiTree T);
void midorder(BiTree T);
void suborder(BiTree T);
void createtree(BiTree &T);
int main(){
	BiTree T;
	/*以下是测试代码
	createtree(T);
	preorder(T);
	printf("\n");
	midorder(T);
	printf("\n");
	suborder(T);
	printf("\n");
	*/
	return 0;
}
void preorder(BiTree T){
    if(T!=NULL){
    	printf("%c ",T->data);
    	preorder(T->lchild);
    	preorder(T->rchild);
	}
} 
void midorder(BiTree T){
	if(T!=NULL){
		midorder(T->lchild);
    	printf("%c ",T->data);
    	midorder(T->rchild);
	}
}
void suborder(BiTree T){
	if(T!=NULL){
		suborder(T->lchild);
    	suborder(T->rchild);
    	printf("%c ",T->data);
	}
}
void createtree(BiTree &T){//先序遍历创建 
	char ch;
	ch=getchar();
	if(ch=='#') T=NULL;
	else{
		T=(struct btnode*)malloc(sizeof(struct btnode));
		T->data=ch;
		createtree(T->lchild);
		createtree(T->rchild);
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值