码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树的创建及遍历

时间:2016-04-19 17:27:31      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

输入AB#D##C##回车,或者按照规则自己去输入,

规则就是按前序遍历的方式输入,

#include<cstdio>
#include<cstdlib>
#include<cstring>

typedef struct BiTNode{
	char data;
	struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

void Init(BiTree *T){
	if(!((*T)=(BiTree)malloc(sizeof(BiTNode)))) exit(0);
	*T = NULL;
}
void PreOrderTraverse(BiTree T){	//前序遍历算法 
	if(T == NULL) return;
	printf("%c\n",T->data);
	PreOrderTraverse(T->lchild);
	PreOrderTraverse(T->rchild);
}
void InOrderTraverse(BiTree T){	//中序遍历算法 
	if(T == NULL) return;
	InOrderTraverse(T->lchild);
	printf("%c\n",T->data);
	InOrderTraverse(T->rchild);
}
void PostOrderTraverse(BiTree T){	//后序遍历算法 
	if(T == NULL) return;
	PostOrderTraverse(T->lchild);
	PostOrderTraverse(T->rchild);
	printf("%c\n",T->data);
}
void CreateBiTree(BiTree *T){ //创建二叉树 AB#D##C##回车 
	char ch;
	scanf("%c",&ch);
	if(ch == ‘#‘) *T = NULL;
	else{
		*T = (BiTree)malloc(sizeof(BiTNode));
		if(!*T) exit(0);
		(*T)->data = ch;
		CreateBiTree(&(*T)->lchild);
		CreateBiTree(&(*T)->rchild);
	}
}
int main(){
	BiTree T;
//	Init(&T);
	CreateBiTree(&T);
	printf("前序遍历为:\n");
	PreOrderTraverse(T);
	printf("中序遍历为:\n");
	InOrderTraverse(T);
	printf("后序遍历为:\n");
	PostOrderTraverse(T);
	return 0 ;
}

  

 

二叉树的创建及遍历

标签:

原文地址:http://www.cnblogs.com/zhuozhuo/p/5408599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!