栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现二叉树的三种遍历

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现二叉树的三种遍历

#include 
#include 

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

//先序遍历 
void PreOrder(BiTree t){
	if(t!=NULL){
		printf("%c ",t->data);//访问根节点
		PreOrder(t->lchild);  //访问左节点 
		PreOrder(t->rchild); //访问右节点 
	}
}

//中序遍历 
void InOrder(BiTree t){
	if(t!=NULL){
		InOrder(t->lchild);  //访问左节点 
		printf("%c ",t->data);//访问根节点
		InOrder(t->rchild); //访问右节点 
	}
}

//后序遍历 
void PostOrder(BiTree t){
	if(t!=NULL){
		PostOrder(t->lchild);  //访问左节点 
		PostOrder(t->rchild); //访问右节点 
		printf("%c ",t->data);//访问根节点
	}
}

//统计二叉树节点的总数目
int BiTreeLength(BiTree root)
{
	if(root==NULL) return 0;
	return 1+BiTreeLength(root->lchild) + BiTreeLength(root->rchild);
}

//初始化树节点 
void InitBiTree(BiTree &root){
	root=(BiTree)malloc(sizeof(BiTNode));
	root->data={'A'};
	root->lchild=root->rchild=NULL;
	
	BiTNode *p1=(BiTNode *)malloc(sizeof(BiTNode));
	p1->data={'B'};
	p1->lchild=p1->rchild=NULL;
	root->lchild=p1;
	
	BiTNode *p2=(BiTNode *)malloc(sizeof(BiTNode));
	p2->data={'C'};
	p2->lchild=p2->rchild=NULL;
	root->rchild=p2;
	
	BiTNode *p3=(BiTNode *)malloc(sizeof(BiTNode));
	p3->data={'D'};
	p3->lchild=p3->rchild=NULL;
	p1->lchild=p3;
	
	BiTNode *p4=(BiTNode *)malloc(sizeof(BiTNode));
	p4->data={'E'};
	p4->lchild=p4->rchild=NULL;
	p1->rchild=p4;
	
	BiTNode *p5=(BiTNode *)malloc(sizeof(BiTNode));
	p5->data={'F'};
	p5->lchild=p5->rchild=NULL;
	p2->lchild=p5;
	
	BiTNode *p6=(BiTNode *)malloc(sizeof(BiTNode));
	p6->data={'G'};
	p6->lchild=p6->rchild=NULL;
	p2->rchild=p6;
}

int main(){
	BiTree root=NULL;
	InitBiTree(root);
	PreOrder(root); 
	printf("n");
	InOrder(root);
	printf("n");
	PostOrder(root);
	printf("n");
	int cnt=BiTreeLength(root);
	printf("二叉树的结点数为:%dn",cnt);
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号