首页 > 编程语言 > 详细

建立二叉树,并完成三种遍历算法

时间:2019-10-30 01:37:00      阅读:129      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#include<stack>
#define TElemType char
using namespace std;
typedef struct BiTNode
{
	TElemType data;
	struct BiTNode *lchild,*rchild;
	
}BiTNode,*BiTree;
//先序遍历的顺序建立二叉链表
void xCreateBiTree(BiTree &T)
{
	char ch;
	cin>>ch;
	if(ch==‘#‘) T=NULL;
	else
	{
		T=new BiTNode;
		T->data=ch;
		xCreateBiTree(T->lchild);
		xCreateBiTree(T->rchild);
	}
} 
//先序遍历输出 
void xPrintTree(BiTree T) 
{

	if(T)
	{
		cout<<T->data;
		xPrintTree(T->lchild);
		xPrintTree(T->rchild);
		
	}
	else
	{
	 	 return;	 
	}
}
//中序遍历的顺序建立二叉链表
void zCreateBiTree(BiTree &T)
{
	char ch;
	cin>>ch;
	if(ch==‘#‘) T=NULL;
	else
	{
		T=new BiTNode;
		zCreateBiTree(T->lchild);
		T->data=ch;
		zCreateBiTree(T->rchild);
	}
}
//中序遍历输出 
void zPrintTree(BiTree T) 
{

	if(T)
	{
		zPrintTree(T->lchild);
		cout<<T->data;
		zPrintTree(T->rchild);
	}
	else
	{
	 	 return;	 
	}
}
//后序遍历的顺序建立二叉链表
void hCreateBiTree(BiTree &T)
{
	char ch;
	cin>>ch;
	if(ch==‘#‘) T=NULL;
	else
	{
		T=new BiTNode;
		hCreateBiTree(T->lchild);
		hCreateBiTree(T->rchild);
		T->data=ch;
	}
}
//后序遍历输出 
void hPrintTree(BiTree T) 
{

	if(T)
	{
		hPrintTree(T->lchild);
		hPrintTree(T->rchild);
		cout<<T->data;
	}
	else
	{
	 	 return;	 
	}
}
int main()
{
	BiTree root;
//	xCreateBiTree(root);
//	xPrintTree(root);
	/*
		输入:ABC##DE#G##F###
		输出:ABCDEGF
	*/
	
//	zCreateBiTree(root);
//	zPrintTree(root);
	/*
		输入:ABC##DE#G##F###
		输出:CBEGDFA
	*/
	hCreateBiTree(root);
	hPrintTree(root);
	/*
		输入:ABC##DE#G##F###
		输出:CGEFDBA
	*/
	
	return 0;
 } 

  

建立二叉树,并完成三种遍历算法

原文:https://www.cnblogs.com/chrysanthemum/p/11762574.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!